[C]基本数据类型:整型(int)⽤法详解
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打头,后⾯跟着变量的名字,最后以
分号(;)结束。例如:
int erns; /*声明⼀个变量*/
/*注意:⼀定要⽤逗号(,),不能⽤分号(;)*/
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 ); /*少写了两个参数*/c++中string的用法
getchar(); /*等待⽤户按回车*/
return 0;
}
这个程序可以通过编译,但是运⾏结果将会出乎意料,因为我们少写了两个参数。标准规定,如果格式限定符的数⽬⼤于参数数⽬,则printf函数的⾏为是未定义的;如果参数数⽬⼤于格式限定符的数⽬,则多余的参数会被忽略。
6.⼋进制(octal)和⼗六进制(hexadecimal)
C语⾔中,整数常量默认是⼗进制(decimal)整数。通过在整数常量前⾯加上特定的前缀,可以把它设定为⼋进制或者⼗六进制整数。前缀0x或者0X把整数常量设定为⼗六进制整数。注意,是数字0,⽽不是字母O,别搞错了哦!例如:⼗进制的16⽤⼗六进制来表⽰是0x10或者0X10。在整数常量前⾯加上前缀0,表⽰它是⼋进制整数。注意,是数字0,⽽不是字母O。例如:⼗进制的16表⽰为⼋进制就是020。
7.以⼋进制或者⼗六进制形式输出数据
使⽤格式限定符%o可以以⼋进制的形式输出整数。注意,是⼩写字母o,不是数字0。使⽤%x或者%X可以以⼗六进制的形式输出整数。⼩写x表⽰输出使⽤⼩写字母,⼤写X表⽰输出使⽤⼤写字母。使⽤%#o,%#x或者%#X,得到的输出将包括前缀0,0x或者0X。例如:
#include <stdio.h>
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; HEX = C8
dec = 200; octal = 0310; hex = 0xc8; HEX = 0XC8
1.其它整数类型
int是C语⾔的基本整数类型,可以满⾜我们处理⼀般数据的需求。C语⾔还提供了四个可以修饰int的关键字:short、long、signed,以及unsigned。利⽤这四个关键字,C语⾔标准定义了以下整数类型:
1) short int(可简写为short),和int⼀样,也是有符号整数
2) long int(简写:long),有符号整数
3) long long int(简写:long long),C99标准添加的类型,
有符号整数
4) unsigned int(简写:unsigned),⽆符号整数,不能表⽰负数
5) unsigned long int(简写:unsigned long),⽆符号整数,
不能表⽰负数
6) unsigned short int(简写:unsigned short),⽆符号整数,
不能表⽰负数
7) unsigned long long int(简写:unsigned long long),
C99添加的类型,⽆符号整数
8)所有没有标明unsigned的整数类型默认都是有符号整数。
在这些整数类型前⾯加上signed可以使读者更清楚地知道
这些是有符号整数,尽管有没有signed都表⽰有符号整数。
例如:signed int等同于int。
⼀般我们把short称为短整型,把long称为长整型,把long long称为超长整型,把int称为整型。unsigned打头的那些整数类型统称为⽆符号整型。例如:我们称unsigned short为⽆符号短整型。以此类推。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论