C语言从入门到精通(第6版)
上QQ阅读APP看书,第一时间看更新

3.5.1 整型变量

整型变量是用来存储整型数值的变量。整型变量可以分为如表3.4所示的6种类型,其中基本类型的符号使用int关键字,在此基础上可以根据需要加上一些符号进行修饰,如关键字short或long。

表3.4 整型变量的分类

说明

表格中的[]为可选部分。例如,[signed] int在书写时可以省略signed关键字,直接写为int。

1.有符号基本整型

有符号基本整型的关键字是signed int,其中signed可以省略。有符号基本整型在内存中占4个字节,取值范围是−2147483648~2147483647。

说明

通常说到的“整型”,都是指有符号基本整型int。

定义一个有符号基本整型变量的方法是在变量前使用关键字int。例如:

    int iNumber;  /*定义有符号基本整型变量iNumber */
    iNumber=-10;  /*为变量赋值-10*/

或者在定义变量的同时为其赋值:

    int iNumber=-10;  /*定义有符号基本整型变量的同时进行赋值*/
注意

程序中用到的变量应集中定义,并放在变量赋值之前,否则会产生错误。例如:

    /*正确的写法:*/
    int iNumber1;     /*先定义变量*/
    int iNumber2;
    iNumber1=6;       /*再对变量赋值*/
    iNumber2=7;
     
    /*错误的写法:*/
    int iNumber1;     /*定义变量*/
    iNumber1=6;       /*为变量赋值,错误!!因为赋值语句在iNumber2变量定义之前*/
    int iNumber2;     /*定义变量*/
    iNumber2=7;       /*为变量赋值*/

【例3.4】输出有符号int类型的取值范围(实例位置:资源包\TM\sl\03\04)

    #include <stdio.h>
    int main()
    {
         signed int i,j;                          /*定义有符号基本整型变量*/
         i=-2147483648;                           /*为变量赋值*/
         j=2147483647;                            /*为变量赋值*/
         printf("有符号整型变量最小值是%d\n",i);  /*显示整型变量*/
         printf("有符号整型变量最大值是%d\n",j);  /*显示整型变量*/
         return 0;                                /*程序结束*/
    }

运行程序,显示效果如图3.8所示。

注意,如果赋值时i或j的值超出int型的取值范围−2147483648~2147483647,将会发生截断处理(即超出int长度范围的高位字节会被自动截掉),产生错误的计算结果或逻辑错误。

图3.8 有符号基本整型

2.无符号基本整型

无符号基本整型使用的关键字是unsigned int,其中int可以省略。无符号基本整型在内存中占4个字节,取值范围是0~4294967295。

定义一个无符号基本整型变量的方法是在变量前使用关键字unsigned。例如:

    unsigned iUnsignedNum;  /*定义无符号基本整型变量iUnsignedNum */
    iUnsignedNum=111;       /*为变量赋值111*/
3.有符号短整型

有符号短整型使用的关键字是signed short int,其中signed和int可以省略。有符号短整型在内存中占两个字节,取值范围是−32768~32767。

定义一个有符号短整型变量的方法是在变量前使用关键字short。例如:

    short iShortNum;  /*定义有符号短整型变量iShortNum */
    iShortNum=-521;   /*为变量赋值-521*/
4.无符号短整型

无符号短整型使用的关键字是unsigned short int,其中的关键字int在编写时可以省略。无符号短整型在内存中占两个字节,取值范围是0~65535。

定义一个无符号短整型变量的方法是在变量前使用关键字unsigned short。例如:

    unsigned short iUnsignedShtNum;  /*定义无符号短整型变量iUnsignedShtNum */
    iUnsignedShtNum=222;             /*为变量赋值222*/
5.有符号长整型

有符号长整型使用的关键字是signed long int,其中的关键字signed和int在编写时可以省略。有符号长整型在内存中占4个字节,取值范围是−2147483648~2147483647。

定义一个有符号长整型变量的方法是在变量前使用关键字long。例如:

    long iLongNum;       /*定义有符号长整型变量iLongNum */
    iLongNum=-3333333L;  /*为变量赋值−3333333*/
6.无符号长整型

无符号长整型使用的关键字是unsigned long int,其中的关键字int在编写时可以省略。无符号长整型在内存中占4个字节,取值范围是0~4294967295。

定义一个无符号长整型变量的方法是在变量前使用关键字unsigned long。例如:

    unsigned long iUnsignedLongNum;  /*定义无符号长整型变量iUnsignedLongNum */
    iUnsignedLongNum=6666666L;       /*为变量赋值6666666*/