### C语言关键字浅析系列 ###
### ISO/ANSI C 关键字 ###
int,几乎是大部分学习C的人最早认识的一个关键字,似乎也是各种源代码中最常见的关键字之一
int不仅是很多main函数的类型,还陪伴了我们学习打印输出、加减乘除求模、排序、查找……
int的作用是:
定义或声明整数类型。
1、int的存储
通常int类型的数据在内存中用一个字来存储,比如旧时的IBM PC兼容机里面,int用16位来存储(能表示的区间-32768~32767)
现在的计算机一般用32位来存储一个int类型数据,从计算机的发展趋势上看,未来int仍然可能会进化为用64位存储
不过ISO/ANSI C里面还是规定了,int类型的最小取值范围应该是-32768~32767
同时需要注意的是,int类型的整数是有符号整数,所以int在内存中的一个字中有一位是符号位
虽然我们看到的打印出来的int数据是128、345、1949这样的十进制数据,但计算机是二进制的,在内存内部其实是按二进制存储的
如果你了解进制转换就应该清楚,把十进制转为二进制才能方便计算机存储:
2、int的使用
声明一个int变量是最基本的,当然基本是学习C中最简单的语法:
int n; /* 定义一个整型变量n,未初始化 */
n = 2; /* 将n赋值 */
int m = 1; /* 定义一个整型变量m,初始化为1 */
int max, min; /* 一句中定义两个变量max和min,均未初始化 */
int temp = 25, humi = 45; /* 一句定义两个变量temp和humi,均初始化 */
int width, height = 100; /* 一句定义两个变量width和height,其中height赋值为100,
这种编程风格不提倡,容易引起两个变量都是100的错觉 */
如果你了解C语言的5个存储类,你就会知道上述的变量n是一个自动变量,定义后并没有初始化,所以没有值,但为其分配了内存空间
同样是自动变量的m,在定义时也初始化了,所以为其分配空间时也把值赋了进去
上述代码中还有1,2,25,45等这样的整数字样,其实在C语言中这些明写的数字叫做整数常量
如果一个整数常量的值在int能表示的范围内,C将会把它当做int类型看待,也叫做int常量
类似地,如果整数常量的值大于了int表示范围,C还有其他有更大表示范围的整数类型去看待(比如long)
不过如果你写成了1.0或者25.0,C就不会将其看做整数常量了(后面会讲到C默认把这样的数字看做double双精度浮点数类型)
3、int的输入输出
在C中,我们常使用scanf和printf来对数据进行输入和输出
对于int类型的数据,我们还有说明符%d辅助进行输入输出:
int n;
scanf("%d", &n); /* int的说明符是%d,用scanf输入int数据的值的时候别忘了加&,表示地址引用 */
printf("n = %d", n); /* int的输出也是使用%d,但后面无需再加&取地址符,注意这与scanf的区别 */
需要注意的是,%d只是最常见的对int数据进行十进制形式输出显示,如果需要八进制或者十进制输出,可以使用%o和%x:
int N = 100;
printf("%d, %o, %x\n", N, N, N); /* 输出为100,144,64 */
printf("%d, %#o, %#x", N, N, N); /* 输出为100,0144,0x64,#号是为了更直观地表示数的进制 */
——参考《C Primer Plus第五版》
相关文章:
C语言关键字浅析-long
C语言关键字浅析-short
C语言关键字浅析-unsigned