一、整型数据类型
1、整型数据类型名称及关键词
2、为什么要定义不同的整型类型?
因为不同的数据类型所占用的内存大小是不同的,他们可表示的数据范围也是不同的。那么char,short,int,long,long long,分别占用几个字节?具体的数值范围又是多少?C语言并未规定数据类型的大小范围,具体实现交由编译器和平台来实现。那么我们怎么知道Visual studio 2022中各种整型类型能够表示的范围呢?我们可以用sizeof测量。
3、如何测量数据类型大小
- sizeof可以测量数据类型
- sizeof可以测量变量
- sizeof可以测量常量
1 //测量整型数据类型占用的字节 2 #include<stdio.h> 3 int main() 4 { 5 printf("char=%d\n", sizeof(char)); 6 printf("short=%d\n", sizeof(short)); 7 printf("int=%d\n", sizeof(int)); 8 printf("long=%d\n", sizeof(long)); 9 printf("long long=%d\n", sizeof(long long)); 10 return 0; 11 }
运行结果:
4、整型数值范围结论
5、不想最高位当符号位怎么做?
二、浮点型数据类型
1、int类型能装下小数吗?
1 //错误示范 2 #include<stdio.h> 3 int main() 4 { 5 int a=1.345678; 6 int b=0.123456; 7 int c=5.234567; 8 printf("a=%d\n",a); 9 printf("b=%d\n",b); 10 printf("c=%d\n",c); 11 return 0; 12 }
运行结果:
所以整型数据类型是不能表示小数的!
引入新的数据类型:浮点型数据类型
2、单精度浮点类型float
1 #include<stdio.h> 2 int main() 3 { 4 float a=1.345678; 5 float b=0.00001; 6 float c=365.12345; 7 printf("a=%f\n",a); 8 printf("b=%f\n",b); 9 printf("c=%f\n",c); 10 return 0; 11 } 12 //%d占位符用于整型 13 //%f占位符用于浮点型
运行结果:
结果显示c=365.12344
- 所以浮点型并不能表示无限精确,会有误差。
- float至少能表示6位有效数字
3、双精度浮点类型double
1 #include<stdio.h> 2 int main() 3 { 4 double a=1.345678; 5 double b=0.00001; 6 double c=365.12345; 7 printf("a=%f\n",a); 8 printf("b=%f\n",b); 9 printf("c=%f\n",c); 10 return 0; 11 }
运行结果:
4、浮点类型所占字节
1 //测量浮点型数据类型所占用的字节 2 #include<stdio.h> 3 int main() 4 { 5 printf("float=%d\n",sizeof(float)); 6 printf("double=%d\n",sizeof(double)); 7 return 0; 8 }
运行结果: