C语言基本数据类型整型(int)用法详解

上传人:博****1 文档编号:548146535 上传时间:2022-12-08 格式:DOCX 页数:6 大小:22.46KB
返回 下载 相关 举报
C语言基本数据类型整型(int)用法详解_第1页
第1页 / 共6页
C语言基本数据类型整型(int)用法详解_第2页
第2页 / 共6页
C语言基本数据类型整型(int)用法详解_第3页
第3页 / 共6页
C语言基本数据类型整型(int)用法详解_第4页
第4页 / 共6页
C语言基本数据类型整型(int)用法详解_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《C语言基本数据类型整型(int)用法详解》由会员分享,可在线阅读,更多相关《C语言基本数据类型整型(int)用法详解(6页珍藏版)》请在金锄头文库上搜索。

1、C语言基本数据类型:整型(int)用法详解1. 整型 intC 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以 及是否可以为负。int是整型之一,一般被称为整型。以后,在不产生歧义的情况下,我们 把整数类型和int都称为整型。int代表有符号整数,也就是说,用int声明的变量可以是正数,可以是负数,也可以是零, 但是只能是整数。标准规定int的最小取值范围是-32767到32767。int的取值范围因机器 而异,但是一定要大于或者等于-32767到32767。一般来说,int占用一个字的内存空间。 因此,字长为16位(Bit)的旧式IBM兼容机使用16位来储存整型i

2、nt,取值范围是 -32768 到 32767 。目前的个人电脑一般都是 32 位字长的,这些电脑中, int 一般也是 32 位的,取值范围是 -2147483648 到 2147483647。对于使用 64 位 CPU 的电脑,使用更多 位储存int也是很自然的事情,取值范围当然也会更大。2. 声明 int 类型的变量正如我们在以前的教程里看到的那样,int用于声明整型变量:以int打头,后面跟着变量的 名字,最后以分号(;)结束。例如:interns; /*声明一个变量*/* 注意:一定要用逗号(,),不能用分号(;) */int hogs, cows, goats; /* 声明三个变量

3、 */以上声明创建了变量,但是没有给它们提供“值(value)”。在前面的教程中,我们已经用 了两种方法使变量获得“值”。一种是赋值:cows = 500;。另一种是使用scanf函数:scanf( %d, &goats ); 。下面我们来学习第三种方法。3. 初始化变量 初始化变量是指给变量赋初值:声明变量的时候,在变量名的后面写上等号(=),然后写下 你希望赋予变量的“值”。例如:int hogs = 21;int cows = 32, goats = 14;int dogs, cats = 94;以上声明创建了变量,并且为这些变量分配了空间,同时也赋了初值。注意,第三行中只有 cats

4、被初始化为 94,而 dogs 没有被初始化!如下图:4. int 常量上面的例子中, 21、32、14,以及 94 都是整数常量。 C 语言中,整数常量的默认类型是 into如果整数常量的大小超过了 int的取值范围,那么编译器将会把这个整数常量当作long int类型来处理,这个我们后面还会讲到。21、32、14和94都在int的取值范围之内,因 此它们都是int常量。5. 输出 int 型数据 我们可以用printf函数来输出int型数据。正如我们在前面的教程中看到的那样,占位符%d 代表输出的是int型数据,它告诉printf函数在什么地方输出相应的int型数据。d也被称 为格式限定符

5、(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是加法表达式 */ 保证格式限定符的数目和参

6、数数目一致是我们的责任,编译器不负责捕捉这种错误!例如:#include int main(void)int ten = 10, two = 2;printf(%d minus %d is %d , ten ); /* 少写了两个参数 */getchar(); /* 等待用户按回车 */return 0; 这个程序可以通过编译,但是运行结果将会出乎意料,因为我们少写了两个参数。标准规定, 如果格式限定符的数目大于参数数目,则printf函数的行为是未定义的;如果参数数目大于 格式限定符的数目,则多余的参数会被忽略。6. 八进制(octal)和十六进制(hexadecimal)C语言中,整数常量

7、默认是十进制(decimal)整数。通过在整数常量前面加上特定的前缀, 可以把它设定为八进制或者十六进制整数。前缀 0x 或者 0X 把整数常量设定为十六进制整 数。注意,是数字 0 ,而不是字母 O ,别搞错了哦!例如:十进制的 16 用十六进制来 表示是 0x10 或者 0X10 。在整数常量前面加上前缀 0 ,表示它是八进制整数。注意,是 数字 0 ,而不是字母 O 。例如:十进制的 16 表示为八进制就是 020 。7. 以八进制或者十六进制形式输出数据使用格式限定符 %o 可以以八进制的形式输出整数。注意,是小写字母 o ,不是数字 0 。 使用 %x 或者 %X 可以以十六进制的形

8、式输出整数。小写 x 表示输出使用小写字母,大写 X表示输出使用大写字母。使用%#o,%#x或者#X,得到的输出将包括前缀0, 0x或 者0X。例如:#include int main(void)int x = 200;printf(dec = %d; octal = %o; hex = %x; HEX = %X , x, x, x, x);printf(dec = %d; octal = %#o; hex = %#x; HEX = %#X , x, x, x, x); getchar();return 0;这个程序的输出是:dec = 200; octal = 310; hex = c8;

9、HEX = C8dec = 200; octal = 0310; hex = 0xc8; HEX = 0XC81. 其它整数类型int是C语言的基本整数类型,可以满足我们处理一般数据的需求。C语言还提供了四个可 以修饰int的关键字:short、long、signed,以及unsigned。利用这四个关键字,C语言标 准定义了以下整数类型:1)short int(可简写为short),和int 一样,也是有符号整数2)long int(简写:long),有符号整数3)long longint(简写:long long),C99 标准添加的类型,有符号整数4)unsigned int(简写:un

10、signed),无符号整数,不能表示负数5)unsigned long int (简写:unsigned long), 无符号整数,不能表示负数6)unsigned short int(简写:unsigned short), 无符号整数,不能表示负数7)unsigned long longint (简写:unsigned long long),C99 添加的类型,无符号整数8)所有没有标明 unsigned 的整数类型默认都是有符号整数。在这些整数类型前面加上 signed 可以使读者更清楚地知道 这些是有符号整数,尽管有没有 signed 都表示有符号整数。例如: signed int 等同

11、于 int。一般我们把 short 称为短整型,把 long 称为长整型,把 long long 称为超长整型,把 int 称为整型。 unsigned 打头的那些整数类型统称为无符号整型。例如:我们称 unsigned short 为无符号短整型。以此类推。2. 声明方式这些整数类型的声明方式与int类型的声明方式一样。例如:longintestine;long johns;shortinterns;short ribs;unsignedints_count;unsigned players;unsigned long headcount;unsigned short yesvotes;lo

12、ng longago; /* C99 特有 */unsigned long long ego; /* C99 特有 */如果您的编译器不支持C99标准,那就不能使用long long和unsigned long long。3. 取值范围(表示范围)标准也规定了这些整数类型的最小取值范围。short的最小表示范围和int 一样,都是-32767至I32767。也就是-(2T5 - 1)到(2T5 - 1)。其中,2T5表示2的15次方。类似 地,2的20次方记作2八20,以此类推。注意:C语言中2T5并不表示2的15次方, 为了书写方便,我们姑且这么表示。 long 的最小取值范围是 -2147

13、483647 到 2147483647 。 也就是-(2A31 - 1)至U (2A31 - 1) o unsigned short的最小表示范围和unsigned int 一样,都是 0 到 65535 (26 - 1)。unsigned long 的最小取值范围是 0 到 4294967295 (272 - 1)。long long 的最小取值范围是-9223372036854775807(-(263 - 1)到 9223372036854775807(2A63 -1); unsigned long long 是 0 到 18446744073709551615 (2A64 - 1)。标准

14、规定,int的表示范围不能小于short的表示范围,long的表示范围不能小于int的表 示范围。这就是说short型变量占用的空间可能比int型变量少,而long型变量占用的空 间可能比int型变量多。16位(bit)的计算机中,int和short 一般都是16位,而long是 32位;32位的计算机中,short 一般是16位,而long和int是32位。TC2 (16位的编译 器)中,int是16位的;而Dev-C+ (32位的编译器)中,int是32位的。使用unsigned int声明的变量只能表示非负整数(0和正整数)。如果int是16位的话,那 么unsigned int的表示范

15、围是0到65535 (2A16 - 1)。这是因为unsigned不需要符号位, 可以把16个位全都用于表示整数。而int需要一个位作为符号位,用于表示正负,只有15 个位用于表示整数目前, long long 一般 64 位, long 是 32 位, short 是 16 位,而 int 或者 16 位,或者 32 位。具体某个编译器到底使用多少位来表示这些类型,我们可以用运算符sizeof来获取。例 如:printf( %lu , (unsigned long)sizeof(int) * 8 ); /* 输出 int 的位数 */printf( %zu , sizeof(short) * 8 ); /* 输出 short 的位数 */sizeof运算符返回其操作数占用空间的大小,以字节(Byte)为单位。注意,C定义字节的 大小为char类型的大小。char通常是8位(bit)的,当然也可以更大。这里我们假设char 是 8 位的。点击查看 char 类型详细介绍sizeof的用法我们以后会讲到,现在只要有个印象就好了。第二句中的%zu是C99特有的, 如果您的编译器不支持C99(准确地说,应该是如果您的编译器使用的库函数不支持C99), 运行结果将会出错。4. 整数类型的选择 如果您要处理的只是非负整数,那么应该优先使用 unsigned

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号