C语言是为了解决生活中的问题,所以它提供了丰富的数据类型来描述生活中的各种数据。
像50、30、20...的整数,在C语言中使用整型类型来描述;像10.5、20.5...的小数,C语言使用浮点数来描述。以上这些都是内置类型(内置类型:本身自带,可直接使用。)。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道数据的类型,才能知道怎样操作数据。
一.字符型(char)
例如'a' 'x' '\110'这些都是字符,字符的类型就叫做字符型。C语言把字符当作整数进行处理的,所有字符都是以二进制的形式进行编码的,每个字符都对应一个特定的整数。在ASCLL码表上字符'a'的值为97,字符'A'的值为65。(可以查看ASCLL码表)
char:1个字节(8个bit)
char分有符号字符型(signed char)和无符号字符型(unsigned char)。
signed char 的取值范围是-128~127;unsigned char 取值范围是0~255。
此外,C语言中并没有说明普通char类型数据是有符号型还是无符号型,不同的编译器可能有所不同,根据编译器默认选择。
二.整型(int)
int: int类型在内存中占用了4个字节。
int也分为有符号整型(signed int)和无符号整型(unsigned int),他们取值范围如图可知。
1.短整型:
short:在内存中占用了2个字节。
signed short 、unsigned short 取值范围如图可知
2.长整型:
long :在内存中占用4个字节。
C语言中规定:长整型(long int)至少和整型(int)一样长,整型(int)至少和短整型(short int)一样长。编译系统给int型数据分配的内存可能是2个字节或是4个字节,具体由编译系统自行决定。
signed long 、unsigned long 取值范围如图可知
3.更长整型(C99中引入):
long long :在内存中占用8个字节。
signed long long 、unsigned long long 取值范围如图可知
三.浮点型
浮点型简单来说就是用来存储小数的数值类型。按精度区分为单精度( float)双精度( double)
单精度浮点型float在内存中占用4个字节。
双精度浮点型double在内存中占用8个字节。
四.布尔类型(_Bool)
以前,C程序员总是使用自己的方法定义布尔类型。0表示false,非0表示true。C99标准定义了一个新的关键字_Bool,提供了布尔类型。_Bool专门表示真假。
布尔类型的使用得包含头文件<stdbool.h>
布尔类型变量取值是:ture或者false。
_Bool在内存中占据1字节
代码演示
最后,以上内容均是在我的电脑环境下展示出来的。很高兴大家能看到这里。文章中有什么不正确的地方,欢迎大家的指正。期待与大家的交流。