如何在c语言int中定义变量

是定义整数数据的标识符。

比如int a;

这意味着将a定义为一个整数。

c-计算机语言:

1.c语言是一种通用的计算机编程语言,应用非常广泛。C语言的设计目标是提供一种能够以简单的方式编译处理低级内存,生成少量机器码,无需任何运行环境支持即可运行的编程语言。

2.C语言虽然提供了很多底层处理功能,但仍然保持了良好的跨平台特性。用标准规范编写的c语言程序可以在许多计算机平台上编译,甚至包括一些嵌入式处理器(单片机或MCU)和超级计算机。

3.20世纪80年代,为了避免不同开发者使用的C语言的语法存在差异,美国国家标准局制定了一套完整的C语言国际标准语法,称为ANSI C,作为C语言的原始标准。

c语言int可以定义字符变量吗? c语言int不能定义字符变量。但是从单个变量的角度来看,int类型的变量也可以存储一个字符,在需要的时候输出。但是int的类型数组不能用来以字符串的形式存储字符串。只能逐个存储字符串中的每个字符。

int在c语言中的用法 c语言提供了很多整数类型(integers)。这些整数的区别在于取值范围的大小,以及是否可以为负。Int是整数之一,一般称为integer。将来,没有歧义,我们将同时调用整数类型和int整数。我们来看看C语言int的用法。1.Integer int表示有符号整数,即用int声明的变量可以是正数、负数或零,但只能是整数。标准规定int的最小值范围是-32767到32767。int的取值范围因机器而异,但必须大于等于-32767到32767。一般来说,int占用一个字的内存空间。所以字长为16位的老IBM兼容机用16位存储整数int,取值范围为-32768-32767。目前个人电脑一般都是32位长。在这些计算机中,int一般为32位,取值范围为-2147483648到2147483647。对于64位CPU的电脑,自然要用更多的位来存储int,取值范围肯定会更广。2.声明int类型的变量正如我们在前面的教程中看到的,int用于声明整型变量:以int开头,后面是变量的名称,最后是分号(;)结束。例如:int erns/*声明一个变量*/*注意:一定要用逗号(,)而不是分号(;)*/ int猪、牛、山羊;/*声明三个变量*/上面的声明创建了变量,但没有给它们提供“值”。在上一个教程中,我们已经使用了两种方法来获得变量的“值”。一个是赋值:奶牛= 500;。另一种是使用scanf函数:scanf ("%d ",goals);。让我们学习第三种方法。3.初始化变量初始化变量就是给变量赋一个初始值:声明变量的时候,在变量名后面写一个等号(=),然后写下你要赋给变量的“值”。比如:int hogs = 21int奶牛= 32,山羊= 14;int狗,猫= 94;上面的语句创建变量,为它们分配空间,并为它们赋予初始值。注意第三行,只有cats初始化为94,dogs没有初始化!如下图:4。int常量在上面的例子中,21、32、14和94都是整数常量。在C语言中,整数常量的默认类型是int。如果一个整型常量的大小超过了int的取值范围,那么编译器会把这个整型常量当作长int类型,这个我们后面会讲到。21,32,14,94都在int的取值范围内,所以都是int常量。5.输出int数据我们可以用printf函数输出int数据。正如我们在前面的教程中看到的,占位符%d表示int数据的输出,它告诉printf函数在哪里输出相应的int数据。%d也称为格式说明符,因为它指定printf函数应该使用什么形式输出数据。printf函数的第一个参数只能是字符串,称为格式字符串。格式字符串中有多少%d,我们就应该相应地向printf函数提供多少int参数。Int类型参数可以是int类型变量、int类型常量和结果为int类型的表达式。比如:int year = 2005/* year是int变量*/printf("今天是% d-%d-%d ",year,9,209);/* 20 9是加法表达式*/确保格式限定符的数量与参数的数量一致是我们的责任,编译器不负责捕捉此类错误!比如:# includes dio . h int main(void){ int ten = 10,two = 2;printf("%d减%d为%d ",十);/*缺少两个参数*/getchar();/*等待用户按Enter */return 0;}这个程序可以编译,但是运行结果会出乎意料,因为我们少了两个参数。标准规定,如果格式限定符的数量大于参数的数量,则printf函数的行为是未定义的;如果参数的数量大于格式限定符的数量,多余的参数将被忽略。6.在八进制和十六进制C语言中,默认情况下整数常量是十进制整数。通过添加特定前缀,可以将整数常量设置为八进制或十六进制整数。前缀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。比如:# includes dio . h int main(void){ int x = 200;printf(" dec = % d;八进制= % o;十六进制= % x;十六进制= %X”,X,X,X,X);printf(" dec = % d;八进制= % # o;十六进制= % # x;HEX = %#X ",X,X,X,X);getchar();返回0;这个程序的输出是:dec = 200八进制= 310;十六进制= c8十六进制= C8 dec = 200八进制= 0310;十六进制= 0xc8十六进制= 0XC8 1。其他整数类型int是C语言的基本整数类型,可以满足我们处理一般数据的需要。c语言还提供了四个可以修改int的关键字:short,long,signed和unsigned。利用这四个关键字,C语言标准定义了以下整数类型:1) short int,也是和int一样的有符号整数;2) long int (short: long),有符号整数3) long long int (short: long long),C99标准添加的类型,有符号整数4) unsigned int(缩写:unsigned),unsigned integer,不能表示负数5) unsigned long int(缩写:unsigned long),unsigned integer,不能表示负数6) unsigned short int(缩写:unsigned short),unsigned integer,不能表示负数7) unsigned long long int(缩写:unsigned long long),C99添加的类型,unsigned integer 8)所有未标记的整数类型默认为有符号整数。在这些整数类型前加上signed可以让读者更清楚的知道这些是有符号的整数,虽然有没有符号就是有符号的整数。例如,有符号int等价于int。一般我们称之为短整型,长整型,长整型,int整型。那些以无符号开头的整数类型统称为无符号整数。例如,我们称无符号短整型为无符号短整型。诸如此类。2.声明方法这些整数类型的声明方式与int类型相同。例如:long int estine秋衣秋裤;短整型;肋骨短;无符号整数s _ count未签约球员;未签名的长期人数;未签名的简短赞成票;很久很久以前;/* C99独有*/无符号long long ego/* C99特定*/如果你的编译器不支持C99标准,就不能使用long long和unsigned long long。3.值域(指示范围)标准也规定了这些整数类型的最小值域。short的最小表示范围与int相同,从-32767到32767。即-(2 ^ 15-1)到(2 ^ 15-1)。其中2 ^ 15代表2的15次方。同样,2的20次方记为2 ^ 20,依此类推。注意:C语言中的2 ^ 15不代表2的15次方。为了写作方便,就这么说吧。long的最小值范围是-2147483647到2147483647。即-(2 ^ 31)到(2 ^ 31)。无符号short的最小表示范围与无符号int相同,从0到65535(2 ^ 16-1)。无符号长整型的最小值范围是0到4294967295(2 ^ 32-1)。long long的最小值范围是-922337203685475807 (-(2 63-1))到922337203685475807(2 63-1);无符号long long为0到1844674407370951615 (2 64-1)。根据标准,int的表达范围不能小于short,long的表达范围不能小于int。也就是说,短变量可能比int变量占用的空间少,而长变量可能比int变量占用的空间多。在16位计算机中,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位,那么无符号int的范围是0到65535(2 ^ 16-1)。这是因为无符号不需要符号位,16位都可以用来表示整数。Int需要一位作为符号位,用来表示正负,只有15位用来表示整数。目前long long一般是64位,long是32位,short是16位,int不是16位就是32位。编译器使用多少位来表示这些类型可以通过使用操作符sizeof来获得。例如:printf ("%lu ",(无符号长整型)sizeof(int)* 8);/*输出int */ printf的位数(" %zu ",sizeof(short)* 8);/*输出short */ sizeof运算符的位数返回其操作数所占空间的大小,以字节为单位。注意,c将字节的大小定义为char类型的大小。Char通常为8位,但也可以更大。这里我们假设char是8位的。点击查看char类型,详细介绍sizeof的用法。我们以后再谈。现在只是有个印象。第二句中的%zu是C99独有的。如果你的编译器不支持C99(确切的说应该是你的编译器使用的库函数不支持C99),那么运行结果就会是错误的。4.整数类型的选择如果只处理非负整数,应该优先考虑那些以无符号开头的整数类型。如果你要处理的整数超出了int可以表达的范围,而你的编译器中long的表达范围大于int,那么就用long。但是,除非必要,尽量不要使用long,因为它可能会降低程序的效率。有一点需要注意:如果在你的编译器中long和int都是32位的,你需要使用32位的整数,你应该使用long而不是int。只有这样,我们的程序才能安全地移植到16位计算机上,因为在16位计算机中,int一般是16位的。同样,如果需要使用64位整数,就使用long long。如果int是32位,使用short可以节省空间,但是你要保证你要处理的整数不超出short的范围。这种“节省”对于内存大的电脑来说毫无意义。5.long类型常量long long类型常量一般来说,整型常量以int类型存储。如果我们使用的整型常量超出了int的范围,C语言规定编译器自动使用无符号int来处理这个常量。如果unsigned不足以表示这个常数,编译器将使用long。如果还是表达不出来,那就依次用无符号长型、长型长型、无符号长型长型。如果无符号long long不能表达,那么编译器也是无可奈何的。注意:long long和unsigned long long是C99特有的。比如int是16位,就不能表示常量1000000。编译器会用long来处理这个常量,因为无符号int不能表示1000000。类似地,十六进制和八进制整数常量通常被视为int。但是当我们使用int范围之外的常量时,编译器会依次使用unsigned int、long、unsigned long、long long和unsigned long long。直到使用的类型足以表示该常数。有时候,我们使用一个小的常数,但是我们希望这个常数被当作一个长型,所以我们需要在这个常数后面加上后缀L(小写字母L)或者L(大写字母L)。我们应该避免使用l,因为l很容易与数字1混淆。例如,整数常量7被视为int,但整数常量7l(或7L)被视为long。同样,如果你给一个整型常量加上后缀ll或者LL,这个常量会被当作一个long long。比如:3LL。如果要使用无符号整数常量,也要使用后缀u或u .例如:2u,3U,4Lu,5ul,6LU,7LLU,8UL,9ul。这些后缀也可以用于十六进制和八进制整数常量。例如:020L、010LL、0x30uL、0x40ull。1.要输出各种整数类型的变量,输出不同类型的整数,需要使用不同的格式限定符。使用% u输出无符号int类型的整数,使用% ld输出long如果要以十六进制或八进制形式输出,请使用%lx(或%lX)或%lo。注意:虽然整数常量的后缀使用大写还是小写英文字母并不重要,但是其格式限定符必须使用小写!如果要输出一个short类型的整数,可以在%d中间加上前缀H,即% hd类似地,%ho和%hx(或%hX)分别表示八进制或十六进制形式的输出。前缀H和L可以与U组合来表示无符号整数的输出。例如:%lu表示输出无符号长整型的整数;%hu表示输出无符号短整型的整数。如果你的编译器支持C99,可以用%lld和%llu分别表示输出long long和unsigned long long。我们来看一个输出各种类型整数的程序:# includes dio . h int main(void){ unsigned int un = 3000000000;/*我用的编译器int是32位*/short end = 200;/*而short是16位*/long big = 65537;printf("un = %u且不是%d ",un,un);printf("end = %hd and %d ",end,end);printf("big = %ld而不是%hd ",big,big);printf("按回车键退出...");getchar();返回0;}用Dev-C编译运行这个程序,输出结果如下:un = 300000000 and not-1294967296 end = 200 and 200 big = 65537 and not 1回车退出...这个程序表明,格式限定符使用不当会导致意外的输出。首先,%d被错误地用作无符号整数变量un的格式限定符,导致输出为负。这是因为我的电脑用同样的二进制形式表示300000000和-129496296,电脑只懂二进制。所以,如果我们用%u告诉printf输出无符号整数,输出就是3000000000;如果我们误用%d,那么输出是负数。但是,如果我们将代码从3000000000更改为96,则输出不会异常。因为96并没有超出int的范围。那么对于第二次printf,无论我们用%hd还是%d,输出结果都是一样的。这是因为C语言标准规定,短类型值传递给函数时,要自动转换成int类型值。之所以转换成int,是因为int被设计成计算机处理效率最高的整数类型。所以对于short和int大小不同的计算机,把变量end转换成int类型传递给函数会更快。这样,H似乎就没有了意义。其实并不是。我们可以用%hd来看看一个大整数类型被截成短整型后会是什么样子。而第三次printf,由于%hd的误用,导致输出为1。这是因为,如果long是32位,那么65537的二进制形式就是0000 0000 0001 0000 0000 0001,而%hd命令printf输出的是short类型的值,导致printf只处理16位数据(假设short是16位),最终输出1。在上一个教程中,我们说过我们有责任确保格式限定符的数量与参数的数量一致。同样,我们有责任确保格式限定符的类型与参数的类型一致!如上所述,格式限定符使用不当会导致意外输出!标准规定,如果任何参数与其对应的格式限定符类型不一致,则printf的行为是未定义的;如果格式限定符本身是非法的,printf的行为就是未定义的。2.对于整数溢出,请先看下面的程序:# includes dio . h int main(void){/* 32位int表示范围的上下限*/int I = 2147483647,j =-2147483648;无符号int k = 4294967295,l = 0;printf("%d %d %d %d ",I,i 1,j,j-1);printf("%u %u %u %u %u ",k,k 1,k 2,l,l-1);printf("按回车键退出...");getchar();返回0;}用Dev-C编译运行这个程序的输出结果如下:2147483647-2147483648 2147483647 4294967295 0 10 4294967295回车退出...在这个例子中,i 1为负,j-1为正,k 1为0,l-1为4294967295。这是因为经过加减运算后,它们的值超出了它们对应的整数类型的范围,我们称之为溢出。如果无符号int变量的值超过上限,将返回0,然后从0开始递增。如果低于下限,将达到无符号类型的上限,然后从上限开始递减。就像一个人绕着赛道跑,绕了一圈又回到起点。一般来说,如果一个int变量溢出,它就会变成负数或正数。对于无符号整数,溢出时的情况必须和上面描述的一样,这是标准规定的。然而,标准并没有规定当有符号整数溢出时会发生什么。这里描述的有符号整数溢出是最常见的情况,但在使用其他编译器的其他计算机上可能会发生不同的情况。

c语言中INT用法的详细说明 大多数语言都需要声明数据类型,只有少数例外,比如PHP。声明的好处是方便系统分配内存空间,数据类型长度不一样。例如,32位和64位计算机可以设置不同的长度。Int是整数数据类型。

相关文章

发表新评论