1. 整型int
C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负。int是整型之一,一般被称为整型。以后,在不产生歧义的情况下,我们把整数类型和int都称为整型。
int代表有符号整数,也就是说,用int声明的变量可以是正数,可以是负数,也可以是零,但是只能是整数。标准规定int的最小取值范围是 -32767 到 32767。int的取值范围因机器而异,但是一定要大于或者等于 -32767 到 32767。一般来说,int占用一个字的内存空间。因此,字长为 16 位(Bit)的旧式 IBM 兼容机使用 16 位来储存整型int,取值范围是
-32768 到 32767 。目前的个人电脑一般都是 32 位字长的,这些电脑中,int一般也是 32 位的,取值范围是 -2147483648 到 2147483647。对于使用 64 位 CPU 的电脑,使用更多位储存int也是很自然的事情,取值范围当然也会更大。
2. 声明int类型的变量
正如我们在以前的教程里看到的那样,int用于声明整型变量:以int打头,后面跟着变量的名字,最后以分号(;)结束。例如:
interns; /* 声明一个变量 */
/* 注意:一定要用逗号(,),不能用分号(;)*/
int hogs, cows, goats; /* 声明三个变量 */
以上声明创建了变量,但是没有给它们提供“值(value)”。在前面的教程中,我们已经用了两种方法使变量获得“值”。一种是赋值:cows = 500; 。另一种是使用scanf函数:scanf( "%d", &goats ); 。下面我们来学习第三种方法。
3. 初始化变量
初始化变量是指给变量赋初值:声明变量的时候,在变量名的后面写上等号(=),然后写下你希望赋予变量的“值”。例如:
int hogs = 21;
int cows = 32, goats = 14;
int dogs, cats = 94;
以上声明创建了变量,并且为这些变量分配了空间,同时也赋了初值。注意,第三行中只有 cats 被初始化为 94,而 dogs 没有被初始化!如下图:
4. int常量
上面的例子中,21、32、14,以及 94 都是整数常量。C 语言中,整数常量的默认类型是int。如果整数常量的大小超过了int的取值范围,那么编译器将会把这个整数常量当作 long int类型来处理,这个我们后面还会讲到。21、32、14 和 94 都在int的取值范围之内,因此它们都是int常量。
5. 输出int型数据
我们可以用printf函数来输出int型数据。正如我们在前面的教程中看到的那样,占位符 %d 代表输出的是int型数据,它告诉printf函数在什么地方输出相应的int型数据。%d 也被称为格式限定符(format specifier),因为它指定了printf函数应该使用什么形式来输出数据。printf函数的第一个参数只能是字符串,这个字符串被称为格式串(format string)。格式串中有多少个 %d,我们就应该相应地提供多少个int型参数给printf函数。int型参数可以是int型变量,int型常量,以及结果为int型的表达式等。例如:
int year = 2005; /* year 是int型变量 */
printf( "Today is %d-%d-%d ", year, 9, 20 + 9 ); /* 20 + 9 是加法表达式 */
保证格式限定符的数目和参数数目一致是我们的责任,编译器不负责捕捉这种错误!例如:
#include <stdio.h>
int main(void)
{
int ten = 10, two = 2;
printf("%d minus %d is %d ", ten ); /* 少写了两个参数 */