官术网_书友最值得收藏!

2.2 常量及符號(hào)

在程序運(yùn)行過(guò)程中,其值不能改變的量稱為常量。常量可分為整型常量、實(shí)型常量、字符常量、字符串常量和其他常量。

上面代碼通過(guò)cout向屏幕輸出4行內(nèi)容。cout是輸出流,實(shí)現(xiàn)向屏幕輸出不同類型的數(shù)據(jù)。代碼中2009是整型常量,2.14是浮點(diǎn)常量(實(shí)型常量),'a'是字符常量,"Hello World"是字符串常量。

2.2.1 整型常量

整型常量可以分為有符號(hào)整型常量和無(wú)符號(hào)整型常量。

-225代表一個(gè)負(fù)整數(shù),+1024代表一個(gè)正整數(shù),正整數(shù)前面的“+”符號(hào)可以省略,即+1024和1024表示的意義相同。

基本的數(shù)據(jù)類型除了整型外,還有長(zhǎng)整型和短整型,因此整型常量也有長(zhǎng)整型常量和短整型常量之分。長(zhǎng)整型常量不可以無(wú)限大,它的最大值是有限定的。根據(jù)CPU寄存器位數(shù)以及編譯器的不同,最大的整型常量值也會(huì)不同。

注意

4294967295是32位CPU寄存器以及Visual C++ 6.0編譯器所允許的最大正整數(shù)。

整型常量在編寫(xiě)代碼時(shí)不僅可以寫(xiě)成十進(jìn)制整數(shù)形式,也可以寫(xiě)成十六進(jìn)制或八進(jìn)制整數(shù)形式。

(1)八進(jìn)制整型常量必須以0開(kāi)頭,即以0作為八進(jìn)制數(shù)的前綴,每位取值范圍是0~7。八進(jìn)制數(shù)通常是無(wú)符號(hào)數(shù)。

例如,016、0101、0127是合法的八進(jìn)制整數(shù);256、0396不是合法的八進(jìn)制整數(shù)。因?yàn)椋?56無(wú)前綴0,代表十進(jìn)制整型常量;0396中數(shù)字9不是八進(jìn)制應(yīng)有的取值。

(2)十六進(jìn)制整型常量的前綴為0X或0x,其數(shù)碼取值范圍為0~9,以及A~F或a~f。

例如,0X2A1、0XC5、0XFFFF是合法的十六進(jìn)制整數(shù);5A、0X3N不是合法的十六進(jìn)制整數(shù)。因?yàn)?A無(wú)前綴0X,0X3N中含有非十六進(jìn)制數(shù)N。

注意

合法主要指能通過(guò)編譯器編譯,非法或不合法指不能通過(guò)編譯器編譯。

2.2.2 實(shí)型常量

實(shí)型常量也稱為浮點(diǎn)數(shù),只能采用十進(jìn)制形式表示。它有兩種表示形式,即小數(shù)表示法和指數(shù)表示法。

1.小數(shù)表示法

小數(shù)表示法由整數(shù)部分和小數(shù)部分組成,兩部分每位取值范圍都是0~9,中間用小數(shù)點(diǎn)分隔。例如,0.0、2.25、0.00596、5.0、536.、-5.3、-0.002等均為合法的實(shí)型常量。

整數(shù)部分和小數(shù)部分有時(shí)可以不必同時(shí)出現(xiàn),例如.2和2.。

2.指數(shù)表示法

指數(shù)表示法也稱為科學(xué)記數(shù)法,指數(shù)部分以符號(hào)“e”或“E”開(kāi)始,但必須是整數(shù),并且符號(hào)“e”或“E”兩邊都必須有一個(gè)數(shù)。例如,1.2e20和-2.4e-2。其中,1.2e20表示的數(shù)為1.2×1020

E5、3E2.5不是合法的實(shí)型常量,E5是E之前無(wú)數(shù)字,3E2.5是E后面有小數(shù)。

說(shuō)明

在字母e(或E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字,稱為規(guī)范化的指數(shù)形式。

L代表長(zhǎng)整型。L可以是大寫(xiě)也可以是小寫(xiě),在編寫(xiě)代碼時(shí)可以不寫(xiě)。此類符號(hào)還有U和u代表無(wú)符號(hào)。例如,255U或255u都代表無(wú)符號(hào)整型常量255。

符號(hào)L或l與符號(hào)U或u可以一起使用。例如,65536lu代表無(wú)符號(hào)長(zhǎng)整型常量65536。

C++編譯系統(tǒng)把這種帶有L或U形式表示的浮點(diǎn)數(shù)按雙精度常量處理,在內(nèi)存中占8個(gè)字節(jié)。如果在實(shí)數(shù)的數(shù)字之后加字母F或f,表示此數(shù)為單精度浮點(diǎn)數(shù)。如果加字母L或l,表示此數(shù)為長(zhǎng)雙精度數(shù)(long double)。

2.2.3 字符常量

字符常量是用單引號(hào)括起來(lái)的一個(gè)字符,例如,'a'和'?'都是合法字符常量。在對(duì)代碼編譯時(shí),編譯器會(huì)根據(jù)ASCII碼表將字符常量轉(zhuǎn)換成整型常量。字符'a'的ASCII碼值是97,字符'A'的ASCII碼值是65,字符'?'的ASCII碼值是63。ASCII碼表中還有很多通過(guò)鍵盤(pán)無(wú)法輸入的字符。可以使用'\ddd'或'\xhh'來(lái)引用所有ASCII碼表中的字符。\ddd是1~3位八進(jìn)制數(shù)所代表的字符,\xhh是1~2位十六進(jìn)制數(shù)所代表的字符。例如,'\101'表示ASCII碼A,\xOA表示換行等。

轉(zhuǎn)義字符的應(yīng)用示例如下:

示例運(yùn)行結(jié)果如圖2.2所示。

圖2.2 示例運(yùn)行結(jié)果

轉(zhuǎn)義字符是特殊的字符常量,使用時(shí)以字符“\”代表開(kāi)始轉(zhuǎn)義,后面不同的字符表示轉(zhuǎn)義后的字符。轉(zhuǎn)義字符說(shuō)明如表2.1所示。

表2.1 轉(zhuǎn)義字符說(shuō)明

2.2.4 字符串常量

字符串常量是由一對(duì)雙引號(hào)括起來(lái)的零個(gè)或多個(gè)字符序列,例如"welcome to our school" "hello girl"。" "表示一個(gè)空字符串。

同樣,' '也表示空字符,而NULL是一種特殊的數(shù)據(jù)類型,表示空的意思。有的編譯器把它編譯成零,有的則編譯成其他值。

字符串常量實(shí)際上是一個(gè)字符數(shù)組,可以將字符串分解成若干個(gè)字符,字符的數(shù)量是字符串的長(zhǎng)度。字符串常量一般都是用來(lái)給字符數(shù)組變量賦值或是直接作為實(shí)參傳遞,為告知編譯器字符串已經(jīng)結(jié)束,一般在給字符數(shù)組賦初值時(shí)在字符串的末尾加上字符'\0',表示字符結(jié)束,如果不加字符結(jié)束標(biāo)志,可能會(huì)出現(xiàn)意想不到的錯(cuò)誤。

字符常量'A'與字符串常量"A"是不同的,字符串常量"A"是由'A'和'\0'兩個(gè)字符組成的,字符串的長(zhǎng)度是2;字符常量'A'只是一個(gè)字符,沒(méi)有長(zhǎng)度。

2.2.5 其他常量

前面講到的都是普通的常量,常量還包括布爾(bool)常量、枚舉常量和宏定義常量等。

 布爾常量:只有兩個(gè),一個(gè)是true,表示真;一個(gè)是false,表示假。

 枚舉常量:枚舉型數(shù)據(jù)中定義的數(shù)據(jù)也都是常量。

 宏定義常量:通過(guò)#define宏定義的一些值也是常量,例如:

     #define PI 3.1415

其中PI就是常量。

主站蜘蛛池模板: 克什克腾旗| 建昌县| 丰镇市| 买车| 浙江省| 海原县| 阿拉善右旗| 胶南市| 泾源县| 灵丘县| 应城市| 东阿县| 盐边县| 仁寿县| 原阳县| 嘉义县| 平南县| 新巴尔虎左旗| 龙胜| 焦作市| 巴塘县| 车致| 汕尾市| 蒙城县| 睢宁县| 江口县| 商河县| 宜州市| 广元市| 石屏县| 新乐市| 利辛县| 江津市| 蕉岭县| 宝应县| 黎川县| 绥江县| 柞水县| 科技| 宝坻区| 阿勒泰市|