2.2 常量
常量是指在程序執(zhí)行過程中值不改變的量。常量有兩種表示形式,即字面常量和符號(hào)常量。字面常量的類型是根據(jù)書寫形式來區(qū)分的,它們的類型分別為:整型、浮點(diǎn)型、字符型、字符串型,每個(gè)字面常量的字面本身就是它的值。符號(hào)常量是一個(gè)標(biāo)識(shí)符,在程序中必須遵循“先聲明,后使用”的原則。
1邏輯常量
邏輯常量主要用在邏輯運(yùn)算中,此外,由于邏輯值對(duì)應(yīng)著整數(shù)1或0,所以它也能夠像其他整數(shù)一樣出現(xiàn)在表達(dá)式中,參與各種整數(shù)運(yùn)算。
2字符常量
字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)字符。這是一般意義上的字符常量;除此之外還有一種特殊形式的字符常量,以“\”開頭的包括多個(gè)字符的字符序列也是符合規(guī)定的字符常量。但是,無論字符常量包含一個(gè)還是多個(gè)字符,每個(gè)字符常量只能表示一個(gè)字符,當(dāng)字符常量的一對(duì)單引號(hào)內(nèi)多于一個(gè)字符時(shí),則將按照一定的規(guī)則解釋為一個(gè)字符。
計(jì)算機(jī)中常用的ASCII字符也是字符型的數(shù)據(jù),因?yàn)锳SCII碼值在0~127之間,正好落在字符型數(shù)據(jù)的取值范圍之內(nèi)。ASCII字符集中的每一個(gè)顯示字符(個(gè)別字符除外)都可以作為一個(gè)字符常量。但是,對(duì)于一些特殊的字符,如回車、換行等具有控制功能的字符,或者像單引號(hào)、雙引號(hào)等作為特殊標(biāo)記使用的字符,就無法直接采用單引號(hào)作為起止符號(hào)來表示。C+ +中引入了“轉(zhuǎn)義”字符的概念,其含義是:用反斜線“\”引導(dǎo)的下一個(gè)字符失去了原來的含義,而轉(zhuǎn)義為具有某種控制功能的字符。另外,還允許用反斜線引導(dǎo)一個(gè)具有1至3位的八進(jìn)制整數(shù)或一個(gè)以字母x(大、小寫均可)作為開始標(biāo)記的具有1至2位的十六進(jìn)制整數(shù),對(duì)應(yīng)的字符就是以這個(gè)整數(shù)作為ASCII碼的字符。
3整型常量
整型常量就是整型常數(shù),簡(jiǎn)稱整數(shù),它有十進(jìn)制、八進(jìn)制和十六進(jìn)制3種表示。
(1)十進(jìn)制整數(shù)
十進(jìn)制整數(shù)以正號(hào)(+)或負(fù)號(hào)(-)開頭,由首位非0的一串十進(jìn)制數(shù)字組成。若以正號(hào)開頭則為正數(shù),若以負(fù)號(hào)開頭則為負(fù)數(shù),若省略正負(fù)號(hào),則默認(rèn)為正數(shù)。
當(dāng)一個(gè)十進(jìn)制整數(shù)大于等于-2 147 483 648(即231),同時(shí)小于等于2 147 483 647(即-231-1)時(shí),則被系統(tǒng)看作是整型常量;當(dāng)在2 147 483 648~4 294 967 295即232-1范圍之內(nèi)時(shí),則被看作是無符號(hào)整型常量;當(dāng)超過上述兩個(gè)范圍時(shí),則無法用C+ +整數(shù)類型表示,只有把它用實(shí)數(shù)(即帶小數(shù)點(diǎn)的數(shù))表示才能夠被有效地存儲(chǔ)和處理。
(2)八進(jìn)制整數(shù)
八進(jìn)制整數(shù)以數(shù)字0開頭,后面接若干個(gè)八進(jìn)制數(shù)字(借用十進(jìn)制數(shù)字中的0~7)。八進(jìn)制整數(shù)前面不帶正負(fù)號(hào),全部默認(rèn)為正數(shù)。
當(dāng)一個(gè)八進(jìn)制整數(shù)大于等于0同時(shí)小于等于017777777777時(shí),則稱為整型常量,當(dāng)大于等于020000000000同時(shí)小于等于037777777777時(shí),則稱為無符號(hào)整型數(shù)量。不要使用超過上述兩個(gè)范圍的八進(jìn)制整數(shù),因?yàn)闆]有與此相對(duì)應(yīng)的C+ +整數(shù)類型。
(3)十六進(jìn)制整數(shù)
十六進(jìn)制整數(shù)以數(shù)字0和字母x(大、小寫均可)開頭,后面接若干個(gè)十六進(jìn)制數(shù)字(借用十進(jìn)制數(shù)字0~9,字母A~F或a~f)。
當(dāng)一個(gè)十六進(jìn)制整數(shù)大于等于0同時(shí)小于等于0x7FFFFFFF時(shí),則稱為整型常量,當(dāng)大于等于0x80000000同時(shí)小于等于0xFFFFFFFF時(shí),則稱為無符號(hào)整型常量,與八進(jìn)制整數(shù)類似,超過上述兩個(gè)范圍的十六進(jìn)制整數(shù)也沒有與之相對(duì)應(yīng)的C+ +整數(shù)類型,所以也不能使用它們。
C+ +中的整型數(shù)據(jù)除了一般表示方法之外,還允許給它們添加后綴u或l。對(duì)于任一種進(jìn)制的整數(shù),若后綴為字母u(大、小寫均可),則規(guī)定它為一個(gè)無符號(hào)整型(unsigned int)數(shù),若后綴為字母l(大、小寫均可),則規(guī)定它為一個(gè)長(zhǎng)整型(long int)數(shù)。在一個(gè)整數(shù)的末尾,可以同時(shí)使用u和l,并且對(duì)排列無要求。
4實(shí)型常量
實(shí)型常量有十進(jìn)制的定點(diǎn)和浮點(diǎn)兩種表示方法,但并不存在其他進(jìn)制的表示,下面分別介紹這兩種表示方法。
(1)定點(diǎn)表示
定點(diǎn)表示的實(shí)數(shù)簡(jiǎn)稱定點(diǎn)數(shù),實(shí)際上是以小數(shù)形式表示實(shí)數(shù)。定點(diǎn)表示的實(shí)數(shù)是由一個(gè)正號(hào)或負(fù)號(hào)(正號(hào)可以省略)后接若干個(gè)十進(jìn)制數(shù)字和一個(gè)小數(shù)點(diǎn)所組成,這個(gè)小數(shù)點(diǎn)可以處在任何一個(gè)數(shù)字位的前面或后面。
(2)浮點(diǎn)表示
浮點(diǎn)表示的實(shí)數(shù)簡(jiǎn)稱浮點(diǎn)數(shù),實(shí)際上是以指數(shù)形式表示實(shí)數(shù)。浮點(diǎn)表示的實(shí)數(shù)是由一個(gè)十進(jìn)制整數(shù)或定點(diǎn)數(shù)后接一個(gè)字母E(大、小寫均可)和一個(gè)1至3位的十進(jìn)制整數(shù)所組成,字母E之前的部分稱為該浮點(diǎn)數(shù)的尾數(shù),之后的部分成為該浮點(diǎn)數(shù)的指數(shù),該浮點(diǎn)數(shù)的值就是它的尾數(shù)乘以10的指數(shù)冪。
對(duì)于一個(gè)浮點(diǎn)數(shù),若將它尾數(shù)中的小數(shù)點(diǎn)調(diào)整到最左邊第一個(gè)非零數(shù)字的后面,則稱它為規(guī)格化(或標(biāo)準(zhǔn)化)浮點(diǎn)數(shù)。
實(shí)型常量分為單精度(float)、雙精度(double)和長(zhǎng)雙精度(long double)三類。一般float型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié),提供7位有效數(shù)字;double型數(shù)據(jù)占8個(gè)字節(jié),提供15位有效數(shù)字;long double型數(shù)據(jù)占10個(gè)字節(jié),提供19位有效數(shù)字。對(duì)于一個(gè)定點(diǎn)數(shù)或浮點(diǎn)數(shù),C+ +自動(dòng)按一個(gè)雙精度數(shù)(double型)來存儲(chǔ)。若在一個(gè)定點(diǎn)數(shù)或浮點(diǎn)數(shù)之后加上字母F(大、小寫均可),則自動(dòng)按一個(gè)單精度數(shù)來存儲(chǔ)。
5枚舉常量
枚舉常量是枚舉類型中定義的值,即枚舉植。枚舉類型屬于用戶定義類型,用關(guān)鍵字enum表示,因此又稱為enum類型。用戶通常利用枚舉類型定義程序中需要使用的一組相關(guān)符號(hào)常量。聲明枚舉類型的語法格式為:
enum<類型名>{<枚舉值表>};
其中,enum是關(guān)鍵字,指出要定義的是枚舉類型。<類型名>是標(biāo)識(shí)符,即由用戶給出的具體枚舉類型名。<枚舉值表>包含多個(gè)枚舉值,它們用逗號(hào)分隔開,每個(gè)枚舉值就是一個(gè)枚舉常量。枚舉值有兩種定義形式:一是<值名>;二是<值名>=<整型常量>。
關(guān)于enum類型有四點(diǎn)說明:
(1)一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚舉值代表一個(gè)整數(shù)。
(2)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,1…n-1對(duì)應(yīng)。
(3)若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚舉值所賦的整型常量值應(yīng)從左至右遞增。
(4)枚舉類型的聲明也可作為成組聲明若干整型符號(hào)常量的方法。也就是說,把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值合在一起定義成一個(gè)枚舉類型。
由于枚舉類型屬于用戶定義數(shù)據(jù)類型,一旦枚舉類型被定義后就可以使用它來定義變量。
編輯推薦:
2014年上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間預(yù)告
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |