32位机就是CPU一次可以处理32bit数据
1个字节(byte)=8位(bit)
符号属性 所占位数 取值范围
signed – char 8 -2^7 ~ 2^7-1
unsigned – char 8 0 ~ 2^8-1
[signed] short [int] 16 -2^15 ~ 2^15-1
unsigned short [int] 16 0 ~ 2^16-1
[signed] – int 32 -2^31 ~ 2^31-1
unsigned – [int] 32 0 ~ 2^32-1
[signed] long [int] 32 -2^31 ~ 2^31-1
unsigned long [int] 32 0 ~ 2^32-1
[signed] long long [int] 64 -2^63 ~ 2^63-1
unsigned long long [int] 64 0 ~ 2^64-1
– – float 32 +/- 3.40282e+038
– – double 64 +/- 1.79769e+308
– long double 96 +/- 1.79769e+308
double和float的区别
double表示双精度浮点数,float表示单精度浮点数
double有效数字为16位,float有效数字为8位
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38
双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
在程序中处理速度不同一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快
string类规定如果没有指定初值则生成一个串(隐式初始化为一个空串),空串不等于nullptr
定义和声明的区别
声明是让名字被程序知道;定义负责创建与名字相关联的实体,定义还申请存储空间,也可能为变量赋初值。
如果想声明一个变量而非定义它,则在变量名前面添加关键字extern,而且不能够显式的初始变量
extern int i; //声明i而非定义i,但是如果此时给i赋值,则变为定义了
int j; //声明并定义j
extern int p=2; //定义