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