C语言关键字浅析-int

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Johan_Joe_King/article/details/84061556

### 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

猜你喜欢

转载自blog.csdn.net/Johan_Joe_King/article/details/84061556
今日推荐