版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第2章 數(shù)據(jù)類型和表達(dá)式,2.1 數(shù)據(jù)類型 2.2 常 量 2.3 變 量 2.4 運(yùn)算符與表達(dá)式,數(shù)據(jù)類型是指定義了一組數(shù)據(jù)以及定義在這一組數(shù)據(jù)的操作,它是程序中最基本的元素。 C+數(shù)據(jù)類型十分豐富,大體上可分為基本類型、空類型、構(gòu)造類型、指針類型、類類型五種。如圖2-1所示。,2.1 數(shù)據(jù)類型,2.1.1 基本類型 基本數(shù)據(jù)類型有4種:整型(int)、浮點(diǎn)型(float)、字符型(char)、邏輯型(bool)。 整型數(shù)在計(jì)算機(jī)內(nèi)部一般采用定點(diǎn)表示法,用于存儲(chǔ)整型量。(如123,-7等),存儲(chǔ)整數(shù)的位數(shù)依機(jī)器的不同而異。 浮點(diǎn)數(shù)和整數(shù)不同的地方是浮點(diǎn)數(shù)采用的是浮點(diǎn)表示法,也就是說,浮點(diǎn)數(shù)的
2、小數(shù)點(diǎn)的位置不同,給出的精度也不相同。 字符類型表示單個(gè)字符,一個(gè)字符用一個(gè)字節(jié)存儲(chǔ)。 邏輯類型,也稱布爾類型,表示表達(dá)式真和假。,2.1.2 空類型void 空類型void用于顯示說明一個(gè)函數(shù)不返回任何值。還可以說明指向void類型的指針,說明以后,這個(gè)指針就可指向各種不同類型的數(shù)據(jù)對(duì)象。,2.1.3 構(gòu)造類型 構(gòu)造類型又稱為組合類型,它是由基本類型按照某種規(guī)則組合而成的。 數(shù)組:是由具有相同數(shù)據(jù)類型的元素組成的集合。 結(jié)構(gòu)體:是由不同的數(shù)據(jù)類型構(gòu)成的一種混合的數(shù)據(jù)結(jié)構(gòu),構(gòu)成結(jié)構(gòu)體的成員的數(shù)據(jù)類型一般不同,并且在內(nèi)存中分別占據(jù)不同的存儲(chǔ)單元。 共用體:是類似于結(jié)構(gòu)體的一種構(gòu)造類型,與結(jié)構(gòu)體不
3、同的是構(gòu)成共同體的數(shù)據(jù)成員共用同一段內(nèi)存單元。 枚舉:是將變量的值一一列舉出來,變量的值只限于列舉出來的值的范圍內(nèi)。,2.1.4 指針類型 指針類型變量用于存儲(chǔ)另一變量的地址,而不能用來存放基本類型的數(shù)據(jù)。它在內(nèi)存中占據(jù)一個(gè)存儲(chǔ)單元。 2.1.5 類類型 類是體現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的最基本特征,也是體現(xiàn)C+與C最大的不同之處。類是一個(gè)數(shù)據(jù)類型,它定義的是一種對(duì)象類型,由數(shù)據(jù)和方法組成,描述了屬于該類型的所有對(duì)象的性質(zhì)。,2.2 常 量,常量是指在程序運(yùn)行過程中其值不能改變的量。C+支持5種類型的常量:浮點(diǎn)型、整型、字符型、布爾型和枚舉型。常量在程序中一般以自身的存在形式體現(xiàn)其值。常量具有類型屬性
4、,類型決定了各種常量在內(nèi)存中占據(jù)存儲(chǔ)空間的大小。,2.2.1 整型常量 整型數(shù)據(jù)表示通常意義上的整數(shù),整型常量可以用十進(jìn)制、八進(jìn)制或十六進(jìn)制表示。 1. 十進(jìn)制常量 一般占一個(gè)機(jī)器字長(zhǎng),是一個(gè)帶正負(fù)號(hào)的常數(shù)(默認(rèn)情況下為正數(shù)),如+3,-7等。 2. 八進(jìn)制常量 由數(shù)字0開頭,其后由若干07的數(shù)字組成,如0378,0123等。 3. 十六進(jìn)制常量 以0 x或0X開頭,其后由若干09的數(shù)字及AF(或小寫af)的字母組成,如0 x173,0 x3af。,整型常量可以后跟字母l或L表示long型(長(zhǎng)整數(shù)),也可以跟u或U表示unsigned整數(shù)(無符號(hào)整數(shù)),如以下數(shù)是合法的: 375u/無符號(hào)整數(shù)
5、 12345UL/無符號(hào)長(zhǎng)整數(shù) 54321L/長(zhǎng)整數(shù) 13579ul/無符號(hào)長(zhǎng)整數(shù),2.2.2 浮點(diǎn)數(shù)常量 浮點(diǎn)數(shù)也稱為實(shí)型數(shù)。只能以十進(jìn)制形式表示。共有兩種表示形式:小數(shù)表示法和指數(shù)表示法。 1. 小數(shù)表示法 使用這種表示形式時(shí),實(shí)型常量分為整數(shù)部分和小數(shù)部分。其中的一部分可在實(shí)際使用時(shí)省略,如10.2,.2,2.等。但整數(shù)和小數(shù)部分不能同時(shí)省略。 2. 指數(shù)表示法 也稱科學(xué)記數(shù)法,指數(shù)部分以E或e開始,而且必須是整數(shù)。如果浮點(diǎn)數(shù)采用指數(shù)表示法,則E或e的兩邊都至少要有一位數(shù)。如以下數(shù)是合法的: 1.2e20,-3.4e-2。,2.2.3 字符常量與字符串常量 1. 字符常量 C+中的字符常
6、量通常是用單引號(hào)括起的一個(gè)字符。在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),如字符a的ASCII碼為97。字符常量包括兩類,一類是可顯字符,如字母、數(shù)字和一些符號(hào) 、+等,另一類是不可顯字符常量,如ASCII碼為13的字符表示回車。 2. 轉(zhuǎn)義字符 轉(zhuǎn)義字符是特殊的字符常量,表示時(shí)一般以轉(zhuǎn)義字符開始,后跟不同的字符表示不同的特殊字符,表2-1列出了常用的特殊字符。,表2-1 常用的特殊字符,3. 字符串常量 字符串常量是由一對(duì)雙引號(hào)括起來的零個(gè)或多個(gè)字符序列。 字符串可以寫在多行上,不過在這種情況下必須用反斜線表示下一行字符是這一行字符的延續(xù)。 字符串常量實(shí)際上是一個(gè)字符數(shù)組,組成數(shù)組的字符除顯示給
7、出的外,還包括字符結(jié)尾處標(biāo)識(shí)字符串結(jié)束的符號(hào)0,所以字符串“abc”實(shí)際上包含4個(gè)字符:a、b、c和0。 需要注意的是a和“a”的區(qū)別,a是一個(gè)字符常量,在內(nèi)存中占一個(gè)字節(jié)的存儲(chǔ)單元,而“a”是一個(gè)字符串常量,在內(nèi)存中占兩個(gè)字節(jié),除了存儲(chǔ)a以外,還要存儲(chǔ)字符串結(jié)尾符0。,2.2.4 布爾常量 布爾常量?jī)H有兩個(gè):false(假)和true(真)。,2.2.5 枚舉常量 枚舉常量可以通過建立枚舉類型來定義。 枚舉類型是一種用戶自定義數(shù)據(jù)類型。在聲明枚舉類型時(shí),需要把常量的值一一列舉出來,形式如下: enum 枚舉類型名 常量值1 ,常量值2 ,常量值n; 例如聲明一個(gè)名為color的枚舉類型: e
8、num colorRed,Green,Blue,White,Black; 枚舉常量是一種符號(hào)常量。Red,Green等是符號(hào)常量,它們表示各個(gè)枚舉值,在內(nèi)存中表示以整型數(shù)。如果沒有專門指定,第一個(gè)符號(hào)常量的枚舉值就是0,其他枚舉值依次為1,2,3。所以,C+自動(dòng)給Red賦0,Green賦1,等等。,2.3 變 量,變量是指程序在運(yùn)行時(shí)其值可改變的量。每個(gè)變量由一個(gè)變量名惟一標(biāo)識(shí),同時(shí),每個(gè)變量又具有一個(gè)特定的數(shù)據(jù)類型。不同類型的變量在內(nèi)存中占有存儲(chǔ)單元的個(gè)數(shù)不同。,2.3.1 變量名命名 變量名的命名要遵守以下規(guī)則: 不能是C+保留字。C+的保留字如表2-2所列。 第一個(gè)字符必須是字母或下劃線
9、,中間不能有空格。 變量名除了使用26個(gè)英文大小寫字母和數(shù)字外,只能使用下劃線。 一般不要超過31個(gè)字符。 變量名不要與C+中的庫(kù)函數(shù)名、類名和對(duì)象名相同。 例如,下列變量名是合法的變量名: a123 c3b file_1,表2-2 C+的標(biāo)準(zhǔn)保留字,2.3.2 變量定義和說明 C+中,變量使用之前一定要定義或說明,變量定義的格式一般為: 修飾符 類型 變量名; /注釋 其中,類型指出變量所存放的數(shù)據(jù)的類型;變量名是任意合法的變量名;注釋指明該變量的含義和用途;修飾符進(jìn)一步描述了變量的使用方式。修飾符和注釋是任選的,可以沒有。,多個(gè)同一類型的變量可以在一行中定義,中間用逗號(hào)隔開,也可以分別定義
10、。 例如: int a,b,c;/定義3個(gè)整型變量a,b,c 和 int a;/定義整型變量a int b; /定義整型變量b int c; /定義整型變量c 二者等價(jià)。,2.3.3 變量初始化 變量初始化一般采用兩種方式。 第一種方式是在定義變量時(shí)可以給變量賦一個(gè)初值,例如: int a=3; float b=3.4; const int c=5; 第二種方式是先定義變量,然后通過賦值語句使變量初始化,例如: int a; a=3;,2.4 運(yùn)算符與表達(dá)式,在程序中,表達(dá)式是計(jì)算求值的基本單位,它是由運(yùn)算符和運(yùn)算數(shù)組成的式子。運(yùn)算符是表示進(jìn)行某種運(yùn)算的符號(hào)。運(yùn)算數(shù)包含常量、變量和函數(shù)等。 C
11、+語言的運(yùn)算符按其在表達(dá)式中與運(yùn)算對(duì)象的關(guān)系(連接運(yùn)算對(duì)象的個(gè)數(shù))可分為: 單目運(yùn)算(一元運(yùn)算符,只需一個(gè)操作數(shù)) 雙目運(yùn)算(二元運(yùn)算符,需兩個(gè)操作數(shù)) 三目運(yùn)算(三元運(yùn)算符,需三個(gè)操作數(shù)),按其在表達(dá)式中所起的作用又可分為: 算術(shù)運(yùn)算符 + - * / % 關(guān)系運(yùn)算符 = = != 邏輯運(yùn)算符 ! i=3*(4+5); /i的值變?yōu)?7 (2)賦值表達(dá)式本身的運(yùn)算結(jié)果是右側(cè)表達(dá)式的值,而結(jié)果類型是左側(cè)變量的數(shù)據(jù)類型。例如: int i=1.2*3; /結(jié)果為3,而不是3.6,(3)賦值運(yùn)算符的結(jié)合性是從右至左的,因此,C+程序中可以出現(xiàn)連續(xù)賦值的情況。例如,下面的賦值是合法的: int i,
12、j,k; i=j=k=10; /i,j,k都賦值為10 (4)復(fù)合運(yùn)算符: +=(加賦值),-=(減賦值), *=(乘賦值),/=(除賦值), %=(取模賦值),=(右移賦值), a+=a; 表示 a=(a+a)=(12+12)=24; 又例如: int a=12; a+=a-=a*=a; 表示 a=a*a /a=12*12=144 a=a-a /a=144-144=0 a=a+a /a=0+0=0,2.4.3 關(guān)系運(yùn)算符 (1)關(guān)系運(yùn)算符用于兩個(gè)值進(jìn)行比較,運(yùn)算結(jié)果為true(真)或false(假),分別用值非0(true)或0(false)表示。C+中的關(guān)系運(yùn)算符如下: (大于), =(大
13、于等于),=(等于), !=(不等于), (2)關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性是從左到右,、=運(yùn)算符的優(yōu)先級(jí)相同,=和!=運(yùn)算符的優(yōu)先級(jí)相同,前者運(yùn)算的優(yōu)先級(jí)高于后者。 (3)關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符。 例如: a+bc等價(jià)于(a+b)c a!=bc等價(jià)于a!=(bc),2.4.4 邏輯運(yùn)算符 b=a+; 等價(jià)于 b=a;a=a+1; int a=3;b=a-; 等價(jià)于 b=a;a=a-1; (運(yùn)算符后置用法,代表先使用變量,然后對(duì)變量增值) int a=3;b=+a; 等價(jià)于 a=a+1;b=a; int a=3;b=-a; 等價(jià)于 a=a-1;b=a; (運(yùn)算符前置用法,代表先
14、對(duì)變量增值,再使用變量),(4)C+編譯器在處理時(shí)盡可能多的自左向右將運(yùn)算符結(jié)合在一起。 例如:a+b表示為(a+)+b而不是a+(+b)。 (5)在調(diào)用函數(shù)時(shí),實(shí)參的求值順序一般為自右向左。而不是PASCAL語言那樣自左向右。例如: int a=1; printf(“%d,%d,%d”,a+,a+,a+); 輸出的結(jié)果為3,2,1而不是1,2,3。,2.4.6 條件運(yùn)算符 (1)條件運(yùn)算符“?:”是C+中惟一三目運(yùn)算符,其形式為: 表達(dá)式1 ?表達(dá)式2 :表達(dá)式3 它的運(yùn)算方式為:先計(jì)算表達(dá)式1的值,如果其值為非0(真),則表達(dá)式2的值就是整個(gè)表達(dá)式的最終結(jié)果;否則表達(dá)式3的值就是整個(gè)表達(dá)式
15、的值。常見的一個(gè)例子為: max=(ab)?a:b) 上面例子定義了一個(gè)求兩個(gè)數(shù)a和b中最大值,其中決定哪一個(gè)是最大值用了條件運(yùn)算符。,(2)條件運(yùn)算符的結(jié)合性是自右向左。例如有以下條件表達(dá)式: ab?a:cd?c:d 相當(dāng)于 ab?a:(cd?c:d) (3)條件運(yùn)算符的優(yōu)先級(jí)別高于賦值運(yùn)算符,低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。例如有: ab?a-b:b-a 相當(dāng)于 ab?(a-b):(b-a),2.4.7 位運(yùn)算符 (1)位(bit)是計(jì)算機(jī)中表示信息的最小單位,一般用0和1表示。一個(gè)字符在計(jì)算機(jī)中用8個(gè)位表示,8個(gè)位組成一個(gè)字節(jié)。C+語言需要將人們通常所習(xí)慣的十進(jìn)制數(shù)表示為二進(jìn)制、八進(jìn)制或十六
16、進(jìn)制數(shù)來理解對(duì)位的操作。C+中所有的位運(yùn)算符如下: (按位求反), (右移), a+b,b+c,c+a; 則先求解a+b,再求解b+c,最后求解c+a,整個(gè)表達(dá)式的結(jié)果為c+a的結(jié)果。,2.4.10 運(yùn)算符優(yōu)先級(jí) (1)運(yùn)算符優(yōu)先級(jí)決定了在表達(dá)式中各個(gè)運(yùn)算符執(zhí)行的先后順序。高優(yōu)先級(jí)運(yùn)算符先于低優(yōu)先級(jí)運(yùn)算符進(jìn)行運(yùn)算。在優(yōu)先級(jí)相同的情形下,則按從左到右的順序進(jìn)行運(yùn)算。 (2)當(dāng)表達(dá)式中出現(xiàn)了括號(hào)時(shí),會(huì)改變優(yōu)先級(jí)。先計(jì)算括號(hào)中的子表達(dá)式值,再計(jì)算整個(gè)表達(dá)式的值。 表2-4(見教材)列出了C+的所有運(yùn)算符集,依優(yōu)先級(jí)從高到低排列。,(3)運(yùn)算符的結(jié)合方式有兩種:左結(jié)合和右結(jié)合。左結(jié)合表示運(yùn)算符優(yōu)先與其左邊的標(biāo)識(shí)符結(jié)合進(jìn)行運(yùn)算,如加法;右結(jié)合表示運(yùn)算符優(yōu)先與其右邊的標(biāo)識(shí)符結(jié)合,如單目運(yùn)算符+、-。 (4)同一優(yōu)先級(jí)的優(yōu)先級(jí)別相同,運(yùn)算次序由結(jié)合方向決定。如1*2/3,*和/的優(yōu)先級(jí)別相同,其結(jié)合方向自左向右,則等價(jià)于(1*2)/3。 (5)不同的運(yùn)算符要求有不同的運(yùn)算對(duì)象個(gè)數(shù),單目運(yùn)算符只需一個(gè)運(yùn)算對(duì)象,如 i+,-a,sizeof(b)等。,2.4.11 表達(dá)式 表達(dá)式是用于計(jì)算的式子,它由運(yùn)算符、運(yùn)算數(shù)和括號(hào)組成。最簡(jiǎn)單的表達(dá)式只有一個(gè)常量或變量,當(dāng)表達(dá)式中有兩個(gè)或多個(gè)運(yùn)算符時(shí),表達(dá)式稱為復(fù)雜表達(dá)式,其中運(yùn)算符執(zhí)行的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 邊界漁業(yè)生產(chǎn)安全培訓(xùn)課件
- 審計(jì)整改調(diào)研方案
- 車隊(duì)駕駛員安全培訓(xùn)模板課件
- 車隊(duì)安全管理知識(shí)培訓(xùn)課件
- 車隊(duì)安全培訓(xùn)評(píng)估課件
- 關(guān)于橡膠高分子職稱評(píng)審的試題
- 車間線路安全培訓(xùn)課件
- 酒店客房設(shè)施設(shè)備保養(yǎng)與維護(hù)制度
- 車間級(jí)安全培訓(xùn)心得報(bào)告課件
- 車間級(jí)員工安全培訓(xùn)總結(jié)課件
- 2026年寧夏賀蘭工業(yè)園區(qū)管委會(huì)工作人員社會(huì)化公開招聘?jìng)淇碱}庫(kù)附答案詳解
- 盤州市教育局機(jī)關(guān)所屬事業(yè)單位2025年公開考調(diào)工作人員備考題庫(kù)完整答案詳解
- 2025-2026四年級(jí)上科學(xué)期末檢測(cè)試題
- 遼寧省鞍山市2025-2026學(xué)年八年級(jí)上學(xué)期1月期末語文試卷
- 班級(jí)演唱會(huì)課件
- 2025馬年元旦新春晚會(huì)活動(dòng)策劃
- 交警新警執(zhí)法培訓(xùn)
- 急性毒性測(cè)試:類器官芯片的快速響應(yīng)
- 骨科護(hù)理標(biāo)準(zhǔn)操作流程手冊(cè)
- 產(chǎn)品推廣專員培訓(xùn)
- DB65T 3119-2022 建筑消防設(shè)施管理規(guī)范
評(píng)論
0/150
提交評(píng)論