2.2 常量
常量是指程序運行過程中其值不可改變的數(shù)據(jù)。常量按其值的表現(xiàn)形式可分為如下類型:整型常量、實型常量、字符型常量、字符串常量和指針常量。
1.整型常量
C語言整型常量的書寫形式有三種:
(1)十進(jìn)制整數(shù)。通常整數(shù)的寫法,如0,123,-45,+25。
(2)八進(jìn)制整數(shù)。以數(shù)字符0開頭并由數(shù)字符0-7組成的數(shù)字符序列,為八進(jìn)制整數(shù)。如 0123表示八進(jìn)制整數(shù),其值等于十進(jìn)制整數(shù) l*8*8+2*8+3=83。
(3)十六進(jìn)制整數(shù)。十六進(jìn)制整數(shù)以O(shè)X(或OX)開頭的整數(shù)。表示十六進(jìn)制數(shù)的數(shù)字將有16個,它們分別是0-9和A、B、C、D、E、F,其中六個英文字母也可以小寫。例如,0x123表示十六進(jìn)制整數(shù),其值等于十進(jìn)制整數(shù)1*16*16+2*16+3=291; oxabc,其值等于10*16*16+11+16+12=2748。
整型常量也可在整數(shù)之后接上字母L(或l),特別指明它是 long型的。
整型常量也可在整數(shù)之后接上字母U(或u),特別指明是不帶符號的,即是unsigned型的。為指明不帶符號的long型整型常量,則需在整數(shù)之后同時加上字母U和L,表明該整型常量是unsigned long型的。
整型數(shù)據(jù)以二進(jìn)制形式存放,要求短整型數(shù)據(jù)的字節(jié)數(shù)不能大于整型數(shù)據(jù)的字節(jié)數(shù);整型數(shù)據(jù)的字節(jié)數(shù)不能大于長整型數(shù)據(jù)的字節(jié)數(shù)。對于帶符號的整數(shù),用二進(jìn)制代碼的最左二進(jìn)位作為數(shù)的符號,1表示負(fù)數(shù),0表示正數(shù)。
2.實型常量
C語言實型常量的一般書寫格式是:
正負(fù)號 整數(shù)部分.小數(shù)部分 指數(shù)部分
其中,正負(fù)號可有可無,無正負(fù)號即為正實數(shù);整數(shù)部分和小數(shù)部分都是十進(jìn)數(shù)字符序列;指數(shù)部分是e(或E)后接上正負(fù)號(正號可有可無)和十進(jìn)數(shù)字符序列。
按上述格式書寫實型常量,另有兩條限制:
(l)整數(shù)部分和小數(shù)部分可以任選,但不可同時都沒有。
(2)小數(shù)點和指數(shù)部分不可以同時都沒有。
ANSIC引入兩個后綴字符,用 f標(biāo)識 float型實型常量,用 1(或 L)標(biāo)識 fong double型實型常量,而無后綴符的實型常量被認(rèn)為是double型的實型常量。
要注意實型常量的有效位數(shù),不要以為寫上的數(shù)字都能被計算機所接受。在大多數(shù)C系統(tǒng)中,一個float型實型數(shù)據(jù)在內(nèi)存中占用4個字節(jié)(32個二進(jìn)位),約7個十進(jìn)位有效數(shù)字,能表示絕對值最接近0的實數(shù)約為10的-38次方,最大的實數(shù)約為10的38次方。例如,對于代碼 float x=123456.123f,在大多數(shù)系統(tǒng)中,實型常量123456.123f的最后兩位數(shù)字是無效的。
double型實型數(shù)據(jù)占用8個字節(jié)(64個二進(jìn)位),約15個十進(jìn)位有效數(shù)字,能表示絕對值最接近0的實數(shù)約為10的一308次方,最大的實數(shù)約為10的308次方。
3.字符常量
字符型數(shù)據(jù)用于表示一個字符值,但字符型數(shù)據(jù)的內(nèi)部表示是字符的ASCll代碼(8位二進(jìn)位的二進(jìn)制形式)。字符型數(shù)據(jù)的類型符用char來標(biāo)記。字符型常量的書寫方法:
(l)普通字符--用單引號括起一個字符。如’a’、’b’、’B’、’$’。
(2)特殊字符--用’\字符或字符列采標(biāo)記。這種標(biāo)記方法有三種:
’\特定字符’,標(biāo)記特定控制符,如換行符用’\ n’來標(biāo)記。
’\ 1至3個人進(jìn)制數(shù)字’,以人進(jìn)數(shù)表示字符的ASCll代碼。
’\ X1至2個十六進(jìn)制數(shù)字符’,以十六進(jìn)制數(shù)表示字符的 ASCll代碼。
由于字符以代碼存放,所以也可把字符值當(dāng)作一個小整數(shù)。反之,一個小整數(shù)也可把它理解為是某個字符的代碼,把它當(dāng)作一個字符。
4.字符串常量
字符串常量用來表示一個字符序列,它的書寫方法用雙引號括住字符序列。例如:”ABC”、””等。字符串常量“”是一個空字符串,即不含任何有效字符的字符串。字符串?dāng)?shù)據(jù)順序存儲字符串字符的ASCll代碼,并在最后字符后面存儲一個H進(jìn)制代碼全為0的特殊字符,用來標(biāo)記字符串的結(jié)束。所以字符串常量“1234”在內(nèi)存占5個字節(jié),而空字符串只占一個字節(jié)。字符串中的字符也可以是轉(zhuǎn)義字符。
5.符號常量
為了提高程序的可讀性,常量可以用以下形式命名:
# define 標(biāo)識符 常量
其中的標(biāo)識符也稱作符號常量,這里的常量是前面所述的某種常量、或是程序中前面定義的符號常量。例如:
# define MAXN 100
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |