在C语言中,整型用int表示。根据整型数在存储器中占用的字节数,可以用long和short来修饰int,表示长整型数和短整型数;根据其是否带有符号,又可以用signed和unsigned来修饰int,表示带符号整型数和无符号整型数。当整型数带有修饰语时,可将int 省略,如short int可以写为short,unsigned long int也可以写为unsigned long。带有不同修饰语的整型数具有不同的字节数以及数据范围。
各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同,但由于省去了符号位,故不能表示负数,数据范围也不同。表2.3 中列出了VC++6.0 编译系统中各类整型量所分配的内存字节数及数的表示范围。
表2.3 整型数据类型
例如,有符号短整型变量表示的最大正数为32767:
符号位
无符号短整型变量表示的最大数为65535:
在C语言标准中,各个整型数据所占的存储空间没有具体规定,各个编译系统在处理时也有所不同,long int 型数据的存储空间不少于int型数据,short int型数据的存储空间不大于int 型数据。在VC++6.0 中,一般按表2.3 所示处理整型数据。
变量定义的一般形式为:
类型说明符 变量名标识符,变量名标识符,...;
例如:
注意:
●允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
●最后一个变量名之后必须以分号";"结尾。
●变量定义必须放在变量使用之前,一般放在函数体的开头部分。
【例2.3】整型变量的定义与使用。
(www.xing528.com)
运行结果:
程序讲解:
从本例程序中可以看到:a,b,c,d 是基本整型变量,u 为无符号基本整型变量;因为c是基本整型,"c=a+u;"的结果是基本整型;因为d 是基本整型,"d=b+u"的结果是有符号基本整型。本例说明,不同类型的量可以参与运算并相互赋值。
在程序中,经常会出现整型数据的溢出问题。比如说一个short 型变量的最大允许值是32767,如果再加1,其结果会是怎样一种情况?它就好像汽车里程表一样,达到最大值后,又从最小值的开始计数。
【例2.4】整型数据的溢出。
运行结果:
程序讲解:
在本程序中,a 和b 定义为短整型,并且变量a 值为32767。变量a 的最高位为0,后15位全为1。加1 后变成第1 位为1,后面15 位全为0。而它是32768 的补码形式,所以输出变量b 的值为32768。请注意:一个短整型变量只能容纳32768~32767 范围内的数,无法表示大于32767 或小于32768 的数。遇到此情况就发生"溢出"。
【例2.5】数据类型转换。
运行结果:
程序讲解:
从程序中可以看到:x,y是长整型变量,a,b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d 被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值,其中的类型转换是由编译系统自动完成的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。