C语言数据类型
目录
C语言数据类型
类型的基本分类
整形家族
char类型:unsigned char和signed char。
思考:为什么将char类型也归结为整形里面呢?因为char类型底层存放的是ASCII码,ASCII是整数,所以他也是整数类型的。
short类型:unsigned short和signed short
int类型:unsigned int和signed int
long类型:unsigned long和signed long
整形在内存中的存储
对于整形来说:数据存放内存中其实存放的都是补码。
为什么?
在计算机系统中,数值一率采用补码表示和存储。原因是:使用补码,可以将符号位和数值域统一处理;同时加法和减法也可以统一处理(CPU只有加法器)此外,补码和反码相互转换,其运算过程时相同的,不需要添加额外的电路。
分析程序:
int main(void){
int num = 1 - 1;
// CPU无法计算减法只能计算加法所以1-1 <==> 1+(-1)这时候就可以计算减法了
/**
* 00000000 00000000 00000000 00000001 正数1的原反补相同
* 10000000 00000000 00000000 00000001 -1的原码
* 11111111 11111111 11111111 11111110 -1的反码
* 11111111 11111111 11111111 11111111 -1的补码
* 两个补码相加
*
* 00000000 00000000 00000000 00000001
* 11111111 11111111 11111111 11111111
* 00000000 00000000 00000000 00000000
* 11111111 11111111 11111111 11111111+1
* 00000000 00000000 00000000 00000000
*/
return 0;
}
整数二进制有3中表示形式:原码、反码、补码
浮点型家族
float和double
构造类型
- 数组类型
int arr[10],int arr[5] - 结构体类型
struct - 枚举类型
enum - 联合类型
union
指针类型
空类型
void表示空类型(无类型)通常用于函数的返回类型,函数的参数,指针类型。