1. 程式人生 > >C語言關鍵字淺析-int

C語言關鍵字淺析-int

### C語言關鍵字淺析系列 ###

### ISO/ANSI C 關鍵字 ###

int,幾乎是大部分學習C的人最早認識的一個關鍵字,似乎也是各種原始碼中最常見的關鍵字之一

int不僅是很多main函式的型別,還陪伴了我們學習列印輸出、加減乘除求模、排序、查詢……

 

int的作用是:

定義或宣告整數型別。

 

1、int的儲存

通常int型別的資料在記憶體中用一個字來儲存,比如舊時的IBM PC相容機裡面,int用16位來儲存(能表示的區間-32768~32767)

現在的計算機一般用32位來儲存一個int型別資料,從計算機的發展趨勢上看,未來int仍然可能會進化為用64位儲存

不過ISO/ANSI C裡面還是規定了,int型別的最小取值範圍應該是-32768~32767

同時需要注意的是,int型別的整數是有符號整數,所以int在記憶體中的一個字中有一位是符號位

雖然我們看到的打印出來的int資料是128、345、1949這樣的十進位制資料,但計算機是二進位制的,在記憶體內部其實是按二進位制儲存的

如果你瞭解進位制轉換就應該清楚,把十進位制轉為二進位制才能方便計算機儲存:

2、int的使用

宣告一個int變數是最基本的,當然基本是學習C中最簡單的語法:

int n;     /* 定義一個整型變數n,未初始化 */
n = 2;     /* 將n賦值 */
int m = 1; /* 定義一個整型變數m,初始化為1 */
int max, min;   /* 一句中定義兩個變數max和min,均未初始化 */
int temp = 25, humi = 45;   /* 一句定義兩個變數temp和humi,均初始化 */
int width, height = 100;    /* 一句定義兩個變數width和height,其中height賦值為100,
                               這種程式設計風格不提倡,容易引起兩個變數都是100的錯覺 */

如果你瞭解C語言的5個儲存類,你就會知道上述的變數n是一個自動變數,定義後並沒有初始化,所以沒有值,但為其分配了記憶體空間

同樣是自動變數的m,在定義時也初始化了,所以為其分配空間時也把值賦了進去

上述程式碼中還有1,2,25,45等這樣的整數字樣,其實在C語言中這些明寫的數字叫做整數常量

如果一個整數常量的值在int能表示的範圍內,C將會把它當做int型別看待,也叫做int常量

類似地,如果整數常量的值大於了int表示範圍,C還有其他有更大表示範圍的整數型別去看待(比如long)

不過如果你寫成了1.0或者25.0,C就不會將其看做整數常量了(後面會講到C預設把這樣的數字看做double雙精度浮點數型別)

 

3、int的輸入輸出

在C中,我們常使用scanf和printf來對資料進行輸入和輸出

對於int型別的資料,我們還有說明符%d輔助進行輸入輸出:

int n;
scanf("%d", &n);        /* int的說明符是%d,用scanf輸入int資料的值的時候別忘了加&,表示地址引用 */
printf("n = %d", n);    /* int的輸出也是使用%d,但後面無需再加&取地址符,注意這與scanf的區別 */

需要注意的是,%d只是最常見的對int資料進行十進位制形式輸出顯示,如果需要八進位制或者十進位制輸出,可以使用%o和%x:

int N = 100;
printf("%d, %o, %x\n", N, N, N);   /* 輸出為100,144,64 */
printf("%d, %#o, %#x", N, N, N);   /* 輸出為100,0144,0x64,#號是為了更直觀地表示數的進位制 */

 

——參考《C Primer Plus第五版》

 

相關文章:

C語言關鍵字淺析-long

C語言關鍵字淺析-short

C語言關鍵字淺析-unsigned