数据类型
char //字符数据类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数
意义:
- 使用这个类型开辟内存空间的大小(大小决定了使用范围
假设我们在内存中定义了两个变量,A变量是int类型,B变量是char类型,我们都知道int类型是4字节所以他在内存中占4个字节的空间,float类型是4字节,所以他在内存中占用4字节的空间.
如何看待内存空间的视角.
类型就决定了定义变量时他们的大小变量A是四字节,变量B也是四字节,站在int型的角度他的存取都是整数,所以他是根据整数的形式存取的,而站在float类型的角度,他存放的是实数,所以他的存取方式是按实数的方式存取的,不同的数据类型就决定了他们在内存中存取方式是如何的
数据类型的基本归类
整型类型
char 1
unsigned char
signed char
short 2
unsigned short[int]
signed short[int]
int 4
unsigned int
signed int
long 4
unsigned long[int]
signed long[int]
char 类型
int main()
{
signed short int a = 0;//有符号短整型
unsigned short b = 0;//无符号短整型
char a;//有符号?还是无符号
return 0;
}
char a是有符号的还是无符号的问题,取决的是编译器
char类型有符号和无符号类型的区别
int main()
{
unsigned char c1 = 255;
signed char c2 = 255;
printf("%d\n",c1);//255
printf("%d\n",c2); //-1
return 0;
}
总结:
计算机中存储运算的数值都是补码形式。
原因:
使用补码,可以将符号位和数值域统 一处理; 同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
1、signed char的取值范围是 0 ~ 127 | -128 ~ -1
2、unsigned char的取值范围是0 ~ 255
浮点类型
float
double
1.float类型称为单精度,占用4个字节,数值范围位3.4E-38到3.4E+38,有效数字6-8位
2.double类型称为双精度,占用8个字节,数值范围位1.7E-308到1.7E+308,有效数字15-16位
构造类型
>数组类型
>结构体类型 struct
>枚举类型 enum
>联合类型 union
指针类型
int* pi;
char* pc;
float* pf;
void* pv;