数据类型
- 基本数据类型
- 复合数据类型
- 指针类型
- 引用类型
基本数据类型(32位编译系统中)
- bool :布尔类型,表示真假,在内存中占据1个字节,取值范围:true和false。bool型在C99之前的C语言中是没有的,只有在C++中才有,但是在C99之后为了兼容C++所以把bool类型加入了C语言标准。
- char:字符类型,在内存中占据1个 字节,取值范围为ASCII码的 -128 -- 127。字符的本质还是整数,只不过显示的时候显示成该整数对应的文字。
- unsigned char:无符号字符类型,在内存中占据1个字节,取值范围为ASCII码的 0 -- 255。
- wchar_t:双(宽)字节字符类型,在内存中占据2个字节,取值范围 0 -- 65535。
- short:短整数类型,在内存中占据2个字节,取值范围 -32768 -- 32767。
- unsigned short:无符号短整数类型,在内存中占据2个字节,取值范围 0 -- 65535。
- int:整数类型,在内存中占据4个字节,取值范围 -2147483648 -- 2147483647。
- unsigned int:无符号整数类型,在内存中占据4个字节,取值范围 0 -- 4294967295。
- long:长整数类型,在内存中占据4个字节,取值范围 -2147483648 -- 2147483647。
- unsigned long:无符号长整数类型,在内存中占据4个字节,取值范围 0 -- 4294967295。
- float:单精度浮点数类型,在内存中占据4个字节,取值范围 ±(3.4 * 10^38 ~ 3.4 * 10^-38)。
- double:双精度浮点数类型,在内存中占据8个字节,取值范围 ±(1.7 * 10^308 ~ 1.7 * 10^-308)。
- long double:长双精度浮点数类型,在内存中占据8个字节,取值范围 ±(1.7 * 10^308 ~ 1.7 * 10^-308)。
上面的13个C++的基本数据类型,其中有3个需要单独说下,分别是long 、unsigned long 和 long double,如果这三个在64位编译系统中long 和 unsigned long 要占据8字节内存,long double 占据16字节内存。
有符号整数类型和无符号整数类型的区别
- 所有的整数类型(包含字符类型)都分为有符号 ( -, 0, + ) 和无符号 ( 0, + )。
- 有符号整数:最高位是符号位,其他是数字位,如果为0,则表示其后的所有位是一个正整数的补码,如果为1,则表示其后的所有位是一个负整数的补码。
- char : [符号][数字][数字][数字][数字][数字][数字][数字]
- 无符号整数,没有符号位,都是数字位
- unsigned char : [数字][数字][数字][数字][数字][数字][数字][数字]
- 所有的浮点数都是有符号(-,0,+).
文字编码
人类文字与计算机中的整数是一一对应的关系。文字编码分为三类,如下:
- 单字节编码,用一个字节对文字进行编码,则最多可以对256个文字进行编码。不适合对中文进行编码,最常见的单字节编码:ASCII(美国标准信息交换码),包含了A-Z,a-z,0-9,数学符号,标点符号等,编码范围从0-127的。主要适用于英语国家使用,其中 “0” “A” “a” 最好能记在心里面。
字符 十进制 十六进制 0 48 30 A 65 41 a 97 61 - 多字节编码,用一个或者两个字节对文字进行编码,若一个文字对应的字节的整数值小于等于127(0x7f)的,则该字节被直接识别为一个文字,若一个文字对应的字节的整数值大于127的时候,则该字节将联合其后的一个字节被一起识别为一个文字。基本上各个国家地区名族都有自己的多字节编码,这些编码的前0-127的文字都和ASCII相同。
- 双字节编码,用两个字节对文字进行编码,最常见的时候unicode(全球统一码),比较适合于本地化软件的开发。
基本数据类型的写法
我们在写无符号整数的时候都会在类型前面加一个unsigned 关键字来标明这上一个无符号的xx类型,如果是有符号的话,也可以这样写,在有符号类型前面加 signed 表示有符号的xx类型,但是我们一般都会省略前面的signed关键字。
当然还有我们的短整数、长整数类型也是一样的道理。比如长整数,我们可以写成long int ,但是我们一般都会省略int ,直接写成long 。还有短整数也是同理,我们可以写成shor int ,但是我们一般都会省略int ,直接写成short。
本文详细介绍了C++中的基本数据类型,包括布尔型、字符型、整数型及浮点数型等,并解释了有符号与无符号整数的区别以及它们在不同编译系统中的表现。
991

被折叠的 条评论
为什么被折叠?



