C 基本資料型別 整型 int 用法詳解

2022-04-04 08:51:44 字數 3526 閱讀 6617

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

int main(void)

int ten = 10, two = 2;

printf("%d minus %d is %d ", ten ); /*少寫了兩個引數*/

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

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為無符號短整型。以此類推。

基本資料型別 整型資料

1 整型常量的表示方法 整型常量即整常數,可用以下三種形式表示 1 十進位制整數。如 1,2,3,4,123,123。2 八進位制整數。以0開頭的數是八進位制。如0123表示八進位制數123 十進位制數等於83 011表示八進位制數 11,即十進位制數 9.3 十六進製制數。以0x開頭的數是十六進製...

python基本資料型別 int

python2 在32位機器上,整數的位數為32位,取值範圍為 2 31 2 31 1 在64位系統上,整數的位數為64位,取值範圍為 2 63 2 63 1 python3 理論上長度是無限的 只要記憶體足夠大 在一般情況下當變數被賦值後,記憶體和變數的關係如下 特殊情況 python內的優化機制...

C 基本資料型別

型別識別符號 型別說明 長度 位元組 範圍備註 char字元型 1 128 127 27 27 1 unsigned char無符字元型 10 255 0 28 1 short int短整型 2 32768 32767 2 15 215 1 unsigned short int無符短整型 20 65...