C

C 知识量:16 - 74 - 317

3.2 int类型><

int类型- 3.2.1 -

int类型是有符号整型,也就是说,int类型的值必须是整数,可以是正整数、负整数或零。

int类型的取值范围依计算机系统而异。通常,储存一个int要占用一个机器字长,32位的计算机用32位储存一个int值,64位的计算机用64位储存一个int值,而ISO C标准规定int的最小取值范围为:-32768~32767(即16位计算机储存int值的范围)。

声明int变量- 3.2.2 -

如果要声明int变量,应先写上int关键字,然后写变量名,最后加上一个分号:

int boy;
int boy,girl;

以上代码中,除了一次声明一个变量外,也可以一次声明多个变量,只需写一个int关键字,后面的多个变量间使用逗号分隔,最后不要忘了分号。

以上代码通过声明创建了int类型的变量(即创建了变量名所代表的内存空间),但变量还没有值,给变量提供值的方式有多种:

第一种方式是赋值,例如:

boy=123;

第二种方式是使用函数,例如通过scanf()函数,由用户给变量提供值。

第三种方式是初始化变量。在C语言中,初始化可以直接在声明中完成。例如:

int boy=123;
int boy=123,girl=456;

int类型常量- 3.2.3 -

C语言把不含小数点和指数的数作为整数,因此,23、-99等都是整型常量(或称整型字面量)。C语言把大多数整型常量视为int类型,但是非常大的整数除外。

打印int值- 3.2.4 -

可以使用printf()函数打印int类型的值。其括号内的%d指明了在一行中打印整数的位置,%d称为转换说明,用于告诉printf函数使用什么格式来显示一个值。必须确保每个%d都与待打印的int值匹配,数量上不能多,也不能少。%d所对应的待打印的值可以是int类型的变量、int类型的常量或其他任何值为int类型的表达式。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int boy = 123;
    int girl = 456;
    printf("Let see the number of boy and girl:\n");
    printf("Boy is %d.\nGirl is %d.\nThey are %d good students.", boy, girl, 2);
    return 0;
}

以上代码的运行结果为:

Let see the number of boy and girl:
Boy is 123.
Girl is 456.
They are 2 good students.

以上代码中的\n是转义字符,表示在这里换行。

八进制和十六进制- 3.2.5 -

C语言假定整型常量是十进制数,但是,还可以使用八进制和十六进制数来表示整数。因为8和16都是2的幂,因此,在表达与计算机相关的值时,使用八进制和十六进制很方便。例如:在16位机器中,常用的65536如果用十六进制表示正好是10000。

另外,十六进制数的每一位恰好由4位二进制数表示,例如:十六进制数3用二进制表示为0011,5用二进制表示为0101,所以,十六进制的35就是00110101,而53就是01010011,这使得十六进制与二进制的转换十分方便。

在C语言中,使用0x或0X前缀表示十六进制,使用0前缀表示八进制。例如:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int boy = 017;
    int girl = 0x7a;
    printf("Let see the number of boy and girl:\n");
    printf("Boy is %d.\nGirl is %d.\nThey are %d good students.", boy, girl, 2);
    return 0;
}

运行结果为:

Let see the number of boy and girl:
Boy is 15.
Girl is 122.
They are 2 good students.

在C语言中,要想以八进制显示数字,需要使用%o,以十六进制显示数字,需要使用%x。此外,如果需要同时显示数的前缀0、ox和0X,则应当使用%#o、%#x和%#X。例如:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int boy = 123;
    int girl = 456;
    printf("Let see the number of boy and girl:\n");
    printf("Boy is %o.\nGirl is %x.\nThey are %d good students.\n", boy, girl, 2);
    printf("Boy is %#o.\nGirl is %#x.\nThey are %d good students.", boy, girl, 2);
    return 0;
}

运行结果为:

Let see the number of boy and girl:
Boy is 173.
Girl is 1c8.
They are 2 good students.
Boy is 0173.
Girl is 0x1c8.
They are 2 good students.