首页 > 编程语言 >C++入门(1)

C++入门(1)

时间:2024-11-24 17:00:09浏览次数:12  
标签:入门 int signed unsigned long 整型 类型 C++

名字空间

#include <iostream>
using namespace std;
int main()
{
}

1.using namespace std; 意思是:使⽤名字空间std (名字空间也叫命名空间)。
2.在C++中,变量、函数和类都是⼤量存在的,这些变量、函数和类的名称如果都存在于全局作⽤域中,可能会导致很多冲突。使⽤名字空间的⽬的是对标识符的名称进⾏隔离,以避免命名冲突或名字污染。
3.std 是C++标准库的名字空间名,C++将标准库的定义实现都放到这个命名空间中,当我们需要使⽤标准库中的内容时,就需要加上:using namespace std ;当有了这句代码的时候,表⽰名字空间std中信息都是可⻅和可⽤的,⽐如:cin 、cout 、endl 等。
4.也可以像std::cout这样用,意思是使用std空间中的cout.
提示:采⽤std::cout 这种写法,如果频繁使⽤,在算法竞赛中⽐较⿇烦,耽搁时间。但是在企业中做软件开发基本上都这样写的,这样写具有针对性,可更好地避免名字冲突的问题。

注释

分为单行注释//和多行注释/* */
在VS环境中注释和取消注释的快捷键:Ctrl + K + C ,Ctrl + K + U
在DevC++中注释和取消注释的快捷键:Ctrl + /

数据类型

C++中提供了丰富的数据类型来描述⽣活中的各种数据。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。
简单数据类型整型,字符型,浮点型,布尔类型
整型分为四大类:short,int long,long long
浮点型分为三类:float 单精度浮点型 ;double 双精度浮点型;long double 更长的双精度浮点型
在C/C++中⼩数的书写形式:

3.14;     //编译器会默认识别为double类型 
3.14f;    //编译器会默认识别为float类型 
1e5;    //这种写法是科学计数法的形式,意思是1.0*10^5   
1e5+10;   //1*100000+10 == 100010  
1.23e5+10; //1.23*100000+10 = 123010

布尔类型
C++有⼀种类型叫:bool (布尔类型),布尔类型的变量的值可以是false ,这种类型的变量专⻔⽤来表⽰真或假的。在C和C++中,0表⽰假,⾮0表⽰真,有时候不使⽤bool类型也能表达相同的逻辑。

#include <iostream>
using namespace std;
int main()
{
bool flag=true;
if(flag)
printf("I like you\n");
return 0;}

signed和unsigned

这两个关键字是修饰字符型整型类型的
signed关键字:表示一个类型带有正负号,包含负值。如:温度。
unsigned关键字:表示该类型不带有正负号,只表示0和正整数。如:年龄。

 //
字符型
char
signed char   //有符号的字符类型 **signed不能省略**
 unsigned char //⽆符号的字符类型 
 //
short [int] //短整型
[signed] short [int]   //有符号的短整型
unsigned short [int]   //⽆符号的短整型 
//
整型 
int 
[signed] int  //有符号的整型         
unsigned [int]        
//
⻓整型
 long [int]          
[signed] long [int]  //有符号的⻓整型
unsigned long [int]  //⽆符号的⻓整型
//
更⻓的整型 
long long [int]
[signed] long long [int]     
unsigned long long [int]     

对于int类型,默认是带正负号的,也就是说int等同于signed int.
由于这是默认情况,则关键字signed写不写都行。
int类型只表示非负整数时,必须使用unsigned声明变量。

unsigned int a;

声明unsigned变量的好处是:同样长度的内存能够表示的最大整数值增大了一倍。
⽐如,16位的signed short int 的取值范围是:-32768~32767,最⼤是32767 ;unsigned short int 的取值范围是:0~65535 ,最⼤值增⼤到了65535.
下⾯的定义是Dev-C++环境中,climits 中相关定义,其实如果仔细看signed climits 中也是包含的limits.h

 #define SHRT_MIN    -32768  //有符号16位整型的最⼩值(短整型)
#define SHRT_MAX      32767  //有符号16位整型的最⼤值
#define USHRT_MAX     0xffffu   //无符号16位整型的最⼤值
#define INT_MIN      (-2147483647 - 1)  //有符号32位整型的最小值(int型)
#define INT_MAX     2147483647  //有符号32位整型的最⼤值

unsigned int 里的int可以省略,所以可写成

unsigned a;

注意,char 类型到底是signed char 还是unsigned char,由编译器决定。大部分编译器上char就是signed char.这就是说,char 不等同于signed char .这⼀点与int 不同。int 就是等同于signed int .

sizeof操作符

sizeof既是关键字,也是操作符,专门用来计算特定数据类型的长度,单位是字节。sizeof的操作数可以是数据类型变量名,或表达式。若是表达式,则可省略掉后面的括号。

sizeof(int);
sizeof 表达式
#include <iostream>
using namespace std;
int main()
{
int a=10;
cout<<sizeof(a)<<endl;
cout<<sizeof a <<endl;
cout<<sizeof(int)<<endl;
return 0;}

以上三个运行的结果都是4.
以上是个数据类型长度
此外float类型也是4个字节。
以下是不同数据类型的取值范围:
在这里插入图片描述
int大概为10^9数量级。

typedef

typedef关键字是用来给类型重命名的,当一个类型复杂时可以简化类型。可提高编程速度。

typedef 旧类型名 新类型名;

例如:

typedef unsigned int uint;
typedef long long ll;
typedef unsigned long long ull; 
typedef unsigned int ut;

重命名后使得用ull创建的变量和使用unsigned long long是一样的。

标签:入门,int,signed,unsigned,long,整型,类型,C++
From: https://blog.csdn.net/2401_88238436/article/details/143973234

相关文章

  • MybatisPlus入门(八)MybatisPlus-DQL编程控制(下)
    一、字段映射与表名映射数据库表和实体类名称一样自动关联,数据库表和实体类有部分情况不一样。问题一:表名与编码开发设计不同步,表名和实体类名称不一致。  解决办法:在模型类上方,使用@TableName注解,通过value属性,设置当前类对应的数据库表名称。  示例代......
  • c++程序设计基础实验4
    任务2:源代码:Gradecalc.hpp:#include<iostream>#include<vector>#include<string>#include<algorithm>#include<numeric>#include<iomanip>usingstd::vector;usingstd::string;usingstd::cin;usingstd::cout;using......
  • C++前置基础知识讲解
    C++前置基础知识讲解1.c++的特点c++是在c语言基础上添加了面向对象编程和泛型编程支持,继承了c语言的高效、简洁、快速和可移植性的传统。C++是面向对象编程的,C语言是面向过程编程的。1.1面向对象编程面向对象是把事物抽象成对象的概念。先定义类,在类里面准确地表示成需要处......
  • C++自动化测试:GTest 与 GitLab CI/CD 的完美融合
    在现代软件开发中,自动化测试是保证代码质量和稳定性的关键手段。对于C++项目而言,自动化测试尤为重要,它能有效捕捉代码中的潜在缺陷,提高代码的可维护性和可靠性。本文将重点介绍如何在C++项目中结合使用GoogleTest(GTest)和GitLabCI/CD,特别是通过提供详细的脚本示例,展示如何......
  • 【C++】继承(inheritance)
    引入假设我们有一个动物类classAnimal{public:intage;voideat(){std::cout<<"吃东西!"<<std::endl;}};又想写一个狗类,它也有年龄,也会吃,除此之外还有种类classDog{public:constchar*kind;intage;voideat(){......
  • 【C++】类(一):定义抽象数据类型
    类这部分内容对应于C++Primer第五版的第七章全部内容。原书当中的内容包括:7.1定义抽象数据类型;7.2访问控制与封装;7.3类的其它特性;7.4类的作用域;7.5构造函数再探;7.6类的静态成员;类的基本思想是数据抽象(dataabstraction)和封装(encapsulation)。数据抽象是一种依赖......
  • 实验四 c++
    任务一:task1_1.cpp:#include<iostream>usingstd::cout;usingstd::endl;//类A的定义classA{public:A(intx0,inty0);voiddisplay()const;private:intx,y;};A::A(intx0,inty0):x{x0},y{y0}{}voidA::display()const{......
  • MybatisPlus入门(七)MybatisPlus-DQL编程控制(上)
     一、查询条件设置查询条件如下图:  用户登录(eq匹配),代码示例:LambdaQueryWrapper<User>lqw=newLambdaQueryWrapper<User>();//等同于=lqw.eq(User::getName,"Jerry").eq(User::getPassword,"jerry");UserloginUser=userDao.selectOne(lqw);System.o......
  • MybatisPlus入门(五)MybatisPlus条件查询
    一、MybatisPlus条件查询MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合  方式一:按条件查询查询年龄小于18的用户,代码示例:@SpringBootTestclassMybatisplusDqlApplicationTests{@AutowiredprivateUserDaouserDao;......
  • MybatisPlus入门(六)MybatisPlus-空值处理
    一、MybatisPlus-空值处理1.1)问题引入:在查询中遇到如下情况,有部分筛选条件没有值,如商品价格有最大值和最小值,商品价格部分时候没有值。  1.2)解决办法:步骤一:新建查询实体类UserQuery继承自Userpackagecom.it.domain.query;importcom.it.domain.User;importlombok.Da......