C语言类型
1、内置类型
char
short
int……
类型的意义?
1、使用这一类型时开辟内空间的大小
2、如何看待内存空间的视角(int a——整型变量,占四字节;float a——浮点数,占四字节)
#include<stdio.h>
int main()
{
int a = 10;//4 bit
float f = 10.0;//4 bit
return 0;
}
类型的基本归类
整型家族
——
1、有符号类:正数:原、反、补码相同
负数:原、反、补码不同,要进行计算
2、无符号类:同正数
char
unsigned char——对于所有无符号数而言,将符号位作为有效位,所能表示的数字更大
signed char
short
unsigned short [int]
signed short [int]
int
unsigned int
signed int
long
unsigned long [int]
signed long [int]
指针类型
int* p1;
char* p2;
float* p3;
void* p4
空类型
2、自定义类型
构造类型:
数组类型(改变元素个数,元素类型时,都会使数组类型发生改变)
结构体类型(成员发生变化时,也就发生变化)
枚举类型
联合类型
数据储存
那么,当我们知道整型数a 分配四个字节的空间,如何储存呢?
正数的原、反、补码都相同
对于整形来说:数据存放中其实放置的是补码
——因为在计算机系统中,数值一律用补码来表示和储存。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法与减法也可以统一处理(CPU只有加法器)。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
同时,我们发现,在内存中存储以下数时,会出现不同的情况
1、大端
浮点数与负数均不相同
我们发现,a的源码应该是 00000000 00000000 00000000 00001010
或者说0x0000000A
2、小端:但有时(在其他编译器的内存中)结果却是倒置的
我们将这种模式称作为大端小端存储模式
大端:指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中
小端:相反