c語(yǔ)言中int的用法有哪些
c語(yǔ)言中int的用法有哪些
C/C++編程語(yǔ)言中,int表示整型變量,是一種數(shù)據(jù)類(lèi)型,用于定義一個(gè)整型變量,在不同編譯環(huán)境有不同的大小,不同編譯運(yùn)行環(huán)境大小不同下面小編給大家整理了c語(yǔ)言中int的用法,供大家參閱。
1. 整型int
C 語(yǔ)言提供了很多整數(shù)類(lèi)型(整型),這些整型的區(qū)別在于它們的取值范圍的大小,以及是否可以為負(fù)。int是整型之一,一般被稱(chēng)為整型。以后,在不產(chǎn)生歧義的情況下,我們把整數(shù)類(lèi)型和int都稱(chēng)為整型。
int代表有符號(hào)整數(shù),也就是說(shuō),用int聲明的變量可以是正數(shù),可以是負(fù)數(shù),也可以是零,但是只能是整數(shù)。標(biāo)準(zhǔn)規(guī)定int的最小取值范圍是 -32767 到 32767。int的取值范圍因機(jī)器而異,但是一定要大于或者等于 -32767 到 32767。一般來(lái)說(shuō),int占用一個(gè)字的內(nèi)存空間。因此,字長(zhǎng)為 16 位(Bit)的舊式 IBM 兼容機(jī)使用 16 位來(lái)儲(chǔ)存整型int,取值范圍是
-32768 到 32767 。目前的個(gè)人電腦一般都是 32 位字長(zhǎng)的,這些電腦中,int一般也是 32 位的,取值范圍是 -2147483648 到 2147483647。對(duì)于使用 64 位 CPU 的電腦,使用更多位儲(chǔ)存int也是很自然的事情,取值范圍當(dāng)然也會(huì)更大。
2. 聲明int類(lèi)型的變量
正如我們?cè)谝郧暗慕坛汤锟吹降哪菢樱琲nt用于聲明整型變量:以int打頭,后面跟著變量的名字,最后以分號(hào)(;)結(jié)束。例如:
interns; /* 聲明一個(gè)變量 */
/* 注意:一定要用逗號(hào)(,),不能用分號(hào)(;)*/
int hogs, cows, goats; /* 聲明三個(gè)變量 */
以上聲明創(chuàng)建了變量,但是沒(méi)有給它們提供“值(value)”。在前面的教程中,我們已經(jīng)用了兩種方法使變量獲得“值”。一種是賦值:cows = 500; 。另一種是使用scanf函數(shù):scanf( "%d", &goats ); 。下面我們來(lái)學(xué)習(xí)第三種方法。
3. 初始化變量
初始化變量是指給變量賦初值:聲明變量的時(shí)候,在變量名的后面寫(xiě)上等號(hào)(=),然后寫(xiě)下你希望賦予變量的“值”。例如:
int hogs = 21;
int cows = 32, goats = 14;
int dogs, cats = 94;
以上聲明創(chuàng)建了變量,并且為這些變量分配了空間,同時(shí)也賦了初值。注意,第三行中只有 cats 被初始化為 94,而 dogs 沒(méi)有被初始化!如下圖:
4. int常量
上面的例子中,21、32、14,以及 94 都是整數(shù)常量。C 語(yǔ)言中,整數(shù)常量的默認(rèn)類(lèi)型是int。如果整數(shù)常量的大小超過(guò)了int的取值范圍,那么編譯器將會(huì)把這個(gè)整數(shù)常量當(dāng)作 long int類(lèi)型來(lái)處理,這個(gè)我們后面還會(huì)講到。21、32、14 和 94 都在int的取值范圍之內(nèi),因此它們都是int常量。
5. 輸出int型數(shù)據(jù)
我們可以用printf函數(shù)來(lái)輸出int型數(shù)據(jù)。正如我們?cè)谇懊娴慕坛讨锌吹降哪菢,占位?%d 代表輸出的是int型數(shù)據(jù),它告訴printf函數(shù)在什么地方輸出相應(yīng)的int型數(shù)據(jù)。%d 也被稱(chēng)為格式限定符(format specifier),因?yàn)樗付藀rintf函數(shù)應(yīng)該使用什么形式來(lái)輸出數(shù)據(jù)。printf函數(shù)的第一個(gè)參數(shù)只能是字符串,這個(gè)字符串被稱(chēng)為格式串(format string)。格式串中有多少個(gè) %d,我們就應(yīng)該相應(yīng)地提供多少個(gè)int型參數(shù)給printf函數(shù)。int型參數(shù)可以是int型變量,int型常量,以及結(jié)果為int型的表達(dá)式等。例如:
int year = 2005; /* year 是int型變量 */
printf( "Today is %d-%d-%d ", year, 9, 20 + 9 ); /* 20 + 9 是加法表達(dá)式 */
保證格式限定符的數(shù)目和參數(shù)數(shù)目一致是我們的責(zé)任,編譯器不負(fù)責(zé)捕捉這種錯(cuò)誤!例如:
#include
int main(void)
{
int ten = 10, two = 2;
printf("%d minus %d is %d ", ten ); /* 少寫(xiě)了兩個(gè)參數(shù) */
get); /* 等待用戶(hù)按回車(chē) */
return 0;
}
這個(gè)程序可以通過(guò)編譯,但是運(yùn)行結(jié)果將會(huì)出乎意料,因?yàn)槲覀兩賹?xiě)了兩個(gè)參數(shù)。標(biāo)準(zhǔn)規(guī)定,如果格式限定符的數(shù)目大于參數(shù)數(shù)目,則printf函數(shù)的'行為是未定義的;如果參數(shù)數(shù)目大于格式限定符的數(shù)目,則多余的參數(shù)會(huì)被忽略。
6. 八進(jìn)制(octal)和十六進(jìn)制(hexadecimal)
C 語(yǔ)言中,整數(shù)常量默認(rèn)是十進(jìn)制(decimal)整數(shù)。通過(guò)在整數(shù)常量前面加上特定的前綴,可以把它設(shè)定為八進(jìn)制或者十六進(jìn)制整數(shù)。前綴 0x 或者 0X 把整數(shù)常量設(shè)定為十六進(jìn)制整數(shù)。注意,是數(shù)字 0 ,而不是字母 O ,別搞錯(cuò)了哦!例如:十進(jìn)制的 16 用十六進(jìn)制來(lái)表示是 0x10 或者 0X10 。在整數(shù)常量前面加上前綴 0 ,表示它是八進(jìn)制整數(shù)。注意,是數(shù)字 0 ,而不是字母 O 。例如:十進(jìn)制的 16 表示為八進(jìn)制就是 020 。
7. 以八進(jìn)制或者十六進(jìn)制形式輸出數(shù)據(jù)
使用格式限定符 %o 可以以八進(jìn)制的形式輸出整數(shù)。注意,是小寫(xiě)字母 o ,不是數(shù)字 0 。使用 %x 或者 %X 可以以十六進(jìn)制的形式輸出整數(shù)。小寫(xiě) x 表示輸出使用小寫(xiě)字母,大寫(xiě) X 表示輸出使用大寫(xiě)字母。使用 %#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);
get);
return 0;
}
這個(gè)程序的輸出是:
dec = 200; octal = 310; hex = c8; HEX = C8
dec = 200; octal = 0310; hex = 0xc8; HEX = 0XC8
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 yyfangchan@163.com (舉報(bào)時(shí)請(qǐng)帶上具體的網(wǎng)址) 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除