C++中定义了一套包括算术类型(arithmetic)和空类型(void)在内的基本数据类型。其中算术类型包了字符,整型数,布尔值和浮点数。空类型不对应具体的值,仅用于一些特殊的场合。

1.1 算术类型:整形+浮点型

wchar_t 宽字符 16位
char16_t unicode字符 16位
char32_t unicode字符 32位
int 整形 16位
long 长整型 32位
long long  长整型 64位

 

float 单精度浮点数 6位
double 双精度 10位
long double 扩展精度浮点 10位

布尔类型:是true or false

 

注意:long long 类型是在C++中新定义的。

内置类型的机器实现:计算机以比特序列存储数据,每个比特非0即1。

大多数计算机以2的整数次幂个比特来作为快来处理内存,可寻址的最小内存块称为(字节),存储的基本单元称为字(word)它通常是由几个字节组成。在C++语言中,一个字节要至少能容纳机器基本字符集中的字符。大多数机器的字节由8比特构成,字则由32或64比特构成,也就是4或8字节。

大多数计算机将内存中的每个字节与一个数字(地址)关联起来,一个字节为8比特。字为32比特的机器上,我们可以看到一个自的内存区域如下:

736424 00111011
736425 00011011

左侧是字节的地址,右侧是字节中8比特的具体内容。

带符号类型和无符号类型

带符号类型可以表示正数,负数,或0,无符号类型仅能表示大于等于0的值。

类型int,long,short,long long 都是带符号的,通常在这些类型名前添加unsigned就可以得到无符号类型。

1.2 类型转换

将对象从一种给定的类型转换为另一种相关的类型。

注意:当从无符号数中减去一个值时,不管这个值是不是无符号数,我们必须确保结果不能是一个负值。

转义序列:

转义序列均以反斜线作为开始,C++规定的转义序列包括:

换行符\n 横向制表符\t 响铃符\a
纵向制表符\v 退格符\b 双引号\"
反斜线\\ 问好\? 单引号\'
回车符\r 进纸符\f  

在程序中,上述转义字符被当作一个字符使用。