一、基本内置类型
前言
1.算术类型
代码验证各个数据类型的大小
cout << sizeof(bool) << " " << sizeof(char) << " " << sizeof(short) << " "
<< sizeof(int) << " " << sizeof(long) << " " << sizeof(long long) << " "
<< sizeof(float) << " " << sizeof(double) << " " << endl;
结果如下:
2.类型转换
当一个算数表达式中既有无符号数又有int值时,那个int值就会转换成无符号数
unsigned u = 10;
int i = -42;
cout << i + i << endl;
cout << i + u << endl;
结果如下:
int类型占4字节,计算机以补码形式存储数据。
-42的补码为0xFFFFFFD6,10的补码为0x0000000a,相加后值为0xFFFFFFE0,转换成10进制后就是4294967264
切勿混用带符号类型和无符号类型
3.字面值常量
1.十进制字面值是带符号数:int,long,long long
2.八进制和十六进制字面值即可能是带符号的也可能是无符号的
3.浮点型字面值默认是一个double
4.字符串字面值的类型实际上是由常量字符构成的数组
指定字面值类型
L'a' //宽字符型字面值,类型是wchar_t
u8"hi!" //utf-8字符串字面值(utf-8用8位编码一个Unicode字符)
42ULL //无符号整型字面值,类型是unsigned long long
1E-3F //单精度浮点型字面值,类型是float
3.14157L //扩展精度浮点型字面值,类型是long double
布尔字面值和指针字面值
布尔字面值是true和false
nullptr是指针字面值