發布時間:2011-09-16 共2頁
2.3 整型數據
2.3.1 整型常量
在C語言程序中,整型常量可以用十進制、八進制和十六進制等形式表示。
十進制基本常量用一串連續的數字表示,例如32767、-32768、0等。
二八進制數也是用一串連續的數字表示,但其開頭必須是數字“0”。例如010、011、016等都是合法的八進制數,與之對應的十進制數為8、9、14。因此,在C程序中不能在一個十進制數前隨意添加數字“0”。例如,不能把十進制數11寫成011。注意:八進制數必須用合法的八進制數字表示。例如,不能寫成O18,因為數字8不是八進制數字。
十六進制數用數字0和字母x(或大寫字母X)開頭。例如0x10,0Xde,0xf等都是合法的十六進制數,與之對應的十進制數分別為16、222、15。注意:十六進制數必須用合法的十六進制數字表示。十六進制數中的字a,b,c,d,e,f既可以用小寫也可以用大寫。
在C程序中,只有十進制數可以是負數,而八進制和十六進制數只能是整數。
整型常量又有短整型(short int)、基本整型(int)、長整型(long int)和無符號型(unsigned)等不同類型。
2.3.2 整型變量
整型變量可以分為基本型、短整型、長整型和無符號型四種。本節只介紹基本型的整型變量。
基本型的整型變量用類型名關鍵字int進行定義,例如:
int k; /*定義k為整型變量*/
一個定義語句必須以一個“;”號結束。在一個定義語句中也可以同時定義多個變量,變量之間用逗號隔開。例如:
int i,j,k; /*定義i,j,k為整型變量*/
不同的編譯系統為int變量開辟的內存單元大小不同。VC6.0為int變量開辟4個字節(32個二進制位)的內存單元,并按整型數的存儲方式存放數據,允許存放的數值范圍是:
-21474836x8~2147483547整型的變量只能存放整型數值。
當按上述方式定義變量i、j和k時,編譯程序僅為i、j和k開辟存儲單元,而沒有在存儲單元中存放任何初值,此時變址中的值是無意義的,稱變量值“無定義”。
C語言規定,可以在定義變量的同時給變盤賦初值,也稱變量初始化。例如:
main()
{ int i=1,j=0,k=2; /*定義i,j,k為整型變量,它們的初值分別為1、0和2*/
┆
}
2.3.3 整型數據的分類
前面介紹的int類型通常稱為基本整型。除此之外,C語言中整型數據還有其他三種類型:
短整型(short int)、長整型(int或long int)、無符號型(unsigned)。若不指定變量為無符號型,則變量隱含為有符號型(signed)。
不同的編譯系統或計算機系統對這幾類整型數所占用的字節數有不同的規定。表2.1列出了在VC6.0中定義的整型數所占用的字節數和數值范圍。表中方括號內的單詞可以省略,各單詞排列的先后次序無關緊要。
在VC6.0中可以在整型常量的后面加一個字母l(L的小寫)或L,例如:123L、345l、0L、123456L等,這些常量在內存中占四個字節。
無論是短整型數還是長整型數,都被識別為有符號整數。無符號整數在數的末尾應該加上字母后綴u或U。若是長整型無符號整型常量,則可以加后綴lu或LU。短整型無符號常量的取值應在0-65535范圍內,長整型無符號常量的取值在0-4294967295的范圍內。注意:無符號常量不能表示成小于0的負數,例如:-200U是不合法的。