目录

C语言数据类型


C语言数据类型

类型的基本分类

整形家族

char类型:unsigned charsigned char

思考:为什么将char类型也归结为整形里面呢?因为char类型底层存放的是ASCII码,ASCII是整数,所以他也是整数类型的。

short类型:unsigned shortsigned short

int类型:unsigned intsigned int

long类型:unsigned longsigned 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中表示形式:原码、反码、补码

浮点型家族

floatdouble

构造类型
  1. 数组类型 int arr[10]int arr[5]
  2. 结构体类型 struct
  3. 枚举类型 enum
  4. 联合类型 union
指针类型
空类型

void表示空类型(无类型)通常用于函数的返回类型,函数的参数,指针类型。