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