C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。
使⽤整型类型来描述像10,20...这样的整数;使⽤字符类型来描述像‘a’,’b’...这样的字符;使⽤浮点型类型来描述像1.5,2.3...这样的⼩数。
数据类型主要可以分为两类:内置类型和自定义类型,这次先看内置类型的。
如图所示:
1.字符类型(char)
C语言把字符当作整数处理,所有的字符都是以二进制的形式进行编码的,每一个字符都代表这着一个数字,例:‘a’在ASCLL码表上表示97,而‘A’表示65。
char在内存中占据一个字节(8个bit)
代码如下:
char可以分为有符号的字符型和无符号的字符型
有符号表示为[signde] char,无符号表示为 unsigned char
下面这是ASCLL码表的链接,有兴趣的话,可以看看:https://zh.cppreference.com/w/cpp/language/ascii
- 整形(int)
整形在内存中占据4个字节
如图:
同时,int 也分为有符号的整形和无符号的整形:
有符号的整形是 [signed] int 无符号的整形是 unsigned int
整形也可以分为短整型、长整形和更长的整形。
短整型(short int)
Short int在内存中 占据2个字节
同时也有有字符和无字符的区别
有字符:signed short 无字符:unsigned short
长整型(long)
long 在 内存中占据4个字节
C语言中规定:长整型(long int)至少和整型(int)一样长,整型(int)至少和短整型(short int)一样长。编译系统给int型数据分配的内存可能是2个字节或是4个字节,具体由编译系统自行决定。
有字符:signed long 无字符:unsigned long
更长整形(long long )(从c99引入)
Long long 在内存中占据8个字节
有字符:signed long long 无字符:unsigned long long
- 浮点型(float)
浮点型就是储存小数,按照精度划分为单精度浮点型(float)和双精度浮点型(double)
点精度浮点型(float)在内存中占据4个字节
双精度浮点型(double)在内存中占据8个字节
- 布尔类型
C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假(false),⾮零值表⽰真(ture)。在C99中引入了个_Bool关键字,使用它之前要加上一个头文件<stdBool.h>。
_Bool在内存中占据了一个字节
代码演示:
最后,文章就到结尾了,如果文章中有错误的地方,期待与大家的交流。你们的每一次指正,都将是我们共同进步的阶梯。