C语言中把数据分成两个大类:
- 自建(由程序员自己设计的类型:结构、联合、类)
- 内建(C语言自带的类型) sizeof():运算符,计算变量、类型的字节数
数据类型有:
- 整型:
- signed:有符号,有负号表负数
- signed char:1字节,-128~127
- signed short:2字节,-32768~32767
- signed int:4字节,-20亿~20亿
- signed long:4/8字节(取决于操作系统的位数,32位4字节,64位是8字节)
- signed long long:8字节,9开头的19位整数
注意:signed不加就代表了加
- unsigned:无符号,无负号表正数
- unsigned char:1字节,0~255
- unsigned short:2字节,0~65535
- unsigned int:4字节,0~40亿
- unsigned long:4/8字节(取决于操作系统的位数,32位4字节,64位是8字节)
- unsigned long long:8字节,1开头的20位整数
注:由于无符号类型数据定义时比较麻烦,标准库把这些无符号类型重定义成了以下类型名:
需要包含stdint.h头文件
uint8_t uint16_t uint32_t uint64_t
int8_t int16_t int32_t int64_t
- 浮点型
- float:单精度,4
- double:双精度,8
- long double:12或16(取决于操作系统的位数)
注意:小数点后6位有效,浮点型数据采用科学计数法,二进制与实际数据之间需要进行复杂的转换,所以浮点型数据的运算要比整型慢得多,编程时尽量使用整型
- 模拟型
字符型:
- char:字符就是符号或图案,本质在内存中 都是 以整数的形式存储的,当需要显示成符号或图案时,会根据ASCII码表中的对应关系显示
'\0'==0
'0'==48
'A'==65
'a'==97
布尔型:
- bool:true false布尔类型的产生比C语言要晚,所以C语言没有bool类型,是模拟出来的,stdbool.h头文件中对bool类型进行模拟