數(shù)據(jù)類型運(yùn)算符與表達(dá)式課件_第1頁(yè)
數(shù)據(jù)類型運(yùn)算符與表達(dá)式課件_第2頁(yè)
數(shù)據(jù)類型運(yùn)算符與表達(dá)式課件_第3頁(yè)
數(shù)據(jù)類型運(yùn)算符與表達(dá)式課件_第4頁(yè)
數(shù)據(jù)類型運(yùn)算符與表達(dá)式課件_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第3章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.1C語(yǔ)言的數(shù)據(jù)類型

3.2常量和變量

3.3整型數(shù)據(jù)

3.4實(shí)型數(shù)據(jù)

3.5字符型數(shù)據(jù)

3.6算術(shù)運(yùn)算與算術(shù)表達(dá)式

3.7賦值運(yùn)算與賦值表達(dá)式

3.8C語(yǔ)言特有的運(yùn)算和運(yùn)算符2023/9/51計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式第3章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.1C語(yǔ)言的數(shù)據(jù)3.1C語(yǔ)言的數(shù)據(jù)類型一個(gè)算法應(yīng)包括對(duì)數(shù)據(jù)的描述和對(duì)數(shù)據(jù)處理的描述。C語(yǔ)言提供的數(shù)據(jù)結(jié)構(gòu),是以數(shù)據(jù)類型形式出現(xiàn)的。具體分類如下:1.基本類型分為整型、實(shí)型(又稱浮點(diǎn)型)、字符型和枚舉型四種。2.構(gòu)造類型分為數(shù)組類型、結(jié)構(gòu)體類型和共用體類型三種。3.指針類型。在第9章中介紹。4.空類型C語(yǔ)言中的數(shù)據(jù),有常量和變量之分,它們分別屬于上述這些類型。本章將介紹基本類型中的整型、實(shí)型和字符型三種數(shù)據(jù)。2023/9/52計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.1C語(yǔ)言的數(shù)據(jù)類型一個(gè)算法應(yīng)包括對(duì)數(shù)據(jù)的描述和對(duì)數(shù)3.2常量和變量2.常量的分類

(1)字面常量字面常量的類型,可通過書寫形式來(lái)判別。(2)符號(hào)常量#define符號(hào)常量名常量符號(hào)常量的優(yōu)點(diǎn):1.含義清楚;2.一改全改2.3.2變量1.變量的概念在程序運(yùn)行過程中,其值可以被改變的量稱為變量。2023/9/53計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.2.1常量1.常量的概念

在程序運(yùn)行過程中,其值不能被改變的量稱為常量。

3.2常量和變量2.常量的分類

(1)字面常2.變量的兩個(gè)要素(1)變量名。每個(gè)變量都必須有一個(gè)名字──變量名,變量命名遵循標(biāo)識(shí)符命名規(guī)則。變量名實(shí)際上代表的是一個(gè)符號(hào)地址。通常用小寫。(2)變量值。在程序運(yùn)行過程中,變量值存儲(chǔ)在內(nèi)存中。在程序中,通過變量名找到相應(yīng)的內(nèi)存存儲(chǔ)單元來(lái)引用變量的值。注意:變量和符號(hào)常量的本質(zhì)區(qū)別。2023/9/54計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.變量的兩個(gè)要素2023/8/34計(jì)算機(jī)程序設(shè)計(jì)-第三章3.標(biāo)識(shí)符的命名規(guī)則(1)有效字符:只能由字母、數(shù)字和下劃線組成,且以字母或下劃線開頭。(2)有效長(zhǎng)度:隨系統(tǒng)而異,但至少前8?jìng)€(gè)字符有效。如果超長(zhǎng),則超長(zhǎng)部分被舍棄。如student_name和student_number的前8?jìng)€(gè)字符相同,有的系統(tǒng)認(rèn)為這兩個(gè)變量是一回事而不加區(qū)別。(3)關(guān)鍵字是由C語(yǔ)言規(guī)定的具有特定意義的字符串。用戶定義的標(biāo)識(shí)符不應(yīng)與關(guān)鍵字相同。2023/9/55計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.標(biāo)識(shí)符的命名規(guī)則2023/8/35計(jì)算機(jī)程序設(shè)計(jì)-第三章注意:C語(yǔ)言對(duì)英文字母的大小敏感,即同一字母的大小寫,被認(rèn)為是兩個(gè)不同的字符。在C語(yǔ)言中,變量名total與變量名TOTAL、ToTaL、tOtAl等是不同的變量。標(biāo)識(shí)符命名的良好習(xí)慣──見名知意:所謂“見名知意”是指,通過變量名就知道變量值的含義。通常應(yīng)選擇能表示數(shù)據(jù)含義的英文單詞(或縮寫)作變量名,或漢語(yǔ)拼音字頭作變量名。例如,name/xm(姓名)、sex/xb(性別)、age/nl(年齡)、salary/gz(工資)。2023/9/56計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式注意:C語(yǔ)言對(duì)英文字母的大小敏感,即同一字母的大小寫,被認(rèn)為4.變量的定義與初始化在C語(yǔ)言中,要求對(duì)所有用到的變量,必須先定義、后使用(1.編譯時(shí)分配存儲(chǔ)單元的依據(jù),2.不同類的變量所允許的操作集也不同);稱在定義變量的同時(shí)進(jìn)行賦初值的操作稱為變量的初始化。(1)變量定義的一般格式

[存儲(chǔ)類型]數(shù)據(jù)類型變量名[,變量名2……];例如,floatradius,length,area;

(2)變量初始化的一般格式[存儲(chǔ)類型]數(shù)據(jù)類型變量名[=初值][,變量名2[=初值2]……];例如,floatradius=2.5,length,area;2023/9/57計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式4.變量的定義與初始化2023/8/37計(jì)算機(jī)程序設(shè)計(jì)-第三3.3整型數(shù)據(jù)3.3.0補(bǔ)碼正數(shù)采用符號(hào)-絕對(duì)值表示負(fù)數(shù)X用來(lái)表示,其中n為機(jī)器的字長(zhǎng)簡(jiǎn)單的寫出一個(gè)負(fù)數(shù)的補(bǔ)碼的方法:(1)寫出與該負(fù)數(shù)相對(duì)應(yīng)的正數(shù)的補(bǔ)碼(2)按位求反(3)末位加1用補(bǔ)碼表示數(shù)時(shí)的符號(hào)擴(kuò)展補(bǔ)碼進(jìn)行加減法運(yùn)算時(shí),只要符號(hào)位參加運(yùn)算能自動(dòng)地得到正確結(jié)果。

2023/9/58計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.3整型數(shù)據(jù)3.3.0補(bǔ)碼2023/8/38計(jì)算3.3整型數(shù)據(jù)3.3.1整型變量

1.分類

根據(jù)占用內(nèi)存字節(jié)數(shù)的不同,整型變量又分為4類:(1)基本整型(類型關(guān)鍵字為int)。(2)短整型(類型關(guān)鍵字為short[int])。(3)長(zhǎng)整型(類型關(guān)鍵字為long[int])。(4)無(wú)符號(hào)整型。無(wú)符號(hào)型又分為無(wú)符號(hào)基本整型(unsigned[int])、無(wú)符號(hào)短整型(unsignedshort)和無(wú)符號(hào)長(zhǎng)整型(unsignedlong)三種,只能用來(lái)存儲(chǔ)無(wú)符號(hào)整數(shù)。2023/9/59計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.3整型數(shù)據(jù)3.3.1整型變量

12.占用內(nèi)存字節(jié)數(shù)與值域

上述各類型整型變量占用的內(nèi)存字節(jié)數(shù),隨系統(tǒng)而異。在16位操作系統(tǒng)中,一般用2字節(jié)表示一個(gè)int型變量,且long型(4字節(jié))≥int型(2字節(jié))≥short型(2字節(jié))。

顯然,不同類型的整型變量,其值域不同。占用內(nèi)存字節(jié)數(shù)為n的(有符號(hào))整型變量,其值域?yàn)椋?2n*8-1~(2n*8-1-1);無(wú)符號(hào)整型變量的值域?yàn)椋?~(2n*8-1)。

2023/9/510計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.占用內(nèi)存字節(jié)數(shù)與值域

2023/8/31例如,PC機(jī)中的一個(gè)int型變量,其值域?yàn)?22*8-1~(22*8-1-1),即-32768~32767;一個(gè)unsigned型變量的值域?yàn)椋?~(22*8-1),即0~65535。

3.3.2整型常量1.三種表示形式整型常量即整常數(shù),在C語(yǔ)言中可用三種形式表示:(1)十進(jìn)制。例如10、36。(2)八進(jìn)制(以數(shù)字0開頭)。例如012。(3)十六進(jìn)制(以數(shù)字0+小寫字母x開頭)。例如

0x36。2023/9/511計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式例如,PC機(jī)中的一個(gè)int型變量,其值域?yàn)?22*8-1~(2.分類(1)基本整型。在16位機(jī)中,用2字節(jié)存儲(chǔ),其數(shù)據(jù)范圍與int型變量一樣。(2)長(zhǎng)整型(在數(shù)值后面加“L(l)”)例如,123l、315L等。(3)無(wú)符號(hào)型(在數(shù)值后面加“U(u)”)例如,123u、315U等。3.類型匹配規(guī)則類型匹配規(guī)則為:一個(gè)整型常量,可以賦給能容納下其值的整型變量。例如,其值在-215--(215-1)的整型常量,可以賦給int型變量和longint型變量;其值在-231--(231-1)的整型常量,就只能賦給longint型變量。

2023/9/512計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.分類2023/8/312計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型3.4實(shí)型數(shù)據(jù)

(1)十進(jìn)制形式。例如3.14、9.8。(2)指數(shù)形式:<尾數(shù)>E(e)<整型指數(shù)>。例如3.0E+5等。規(guī)范化指數(shù)形式。

3.4.2實(shí)型變量

C語(yǔ)言的實(shí)型變量,分為兩種:

2023/9/513計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.4.1實(shí)型常量

1.表示形式

實(shí)型常量即實(shí)數(shù),在C語(yǔ)言中又稱浮點(diǎn)數(shù),其值有兩種表達(dá)形式:(1)單精度型。類型關(guān)鍵字為float,一般占4字節(jié)(32位)、提供7位有效數(shù)字。

(2)雙精度型。類型關(guān)鍵字為double,一般占8?jìng)€(gè)字節(jié)、提供15~16位有效數(shù)字。

3.4實(shí)型數(shù)據(jù)

(1)十進(jìn)制形式。例如3.143.4.3實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式如單精度數(shù)占四個(gè)字節(jié),分別用來(lái)存儲(chǔ)尾數(shù)與指數(shù)部分,尾數(shù)部分占的位數(shù)越多,精度越高,指數(shù)部分占的位數(shù)越多,則表示數(shù)的范圍越大。3.4.4實(shí)型數(shù)據(jù)有限的精度帶來(lái)的誤差如1.0/3*3在數(shù)學(xué)上結(jié)果等于1

而用C程序運(yùn)算的結(jié)果則不等于1。實(shí)際編程時(shí)假如用1.0/3*3==1來(lái)作為條件判斷或選擇控制就會(huì)出問題解決方法:可以用fabs(1.0/3*3-1)<=1e-6來(lái)代替2023/9/514計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.4.3實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式2023/8/314計(jì)算3.5字符型數(shù)據(jù)3.5.1字符常量1.字符常量的定義用一對(duì)單引號(hào)括起來(lái)的單個(gè)字符,稱為字符常量。例如,‘A’、‘1’、‘+’等。2.轉(zhuǎn)義字符(P67)C語(yǔ)言還允許使用一種特殊形式的字符常量,就是以反斜杠“\”開頭的轉(zhuǎn)義字符。

注意:如果反斜杠或單、雙引號(hào)本身作為字符常量,必須使用轉(zhuǎn)義字符:‘\\’、‘\’’、‘\”’。2023/9/515計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.5字符型數(shù)據(jù)3.5.1字符常量2023/8/31OK!

§?

3.5.2字符變量字符變量的類型關(guān)鍵字為char,一般占用1字節(jié)內(nèi)存單元。1.變量值的存儲(chǔ)

字符變量用來(lái)存儲(chǔ)字符常量。將一個(gè)字符常量存儲(chǔ)到一個(gè)字符變量中,實(shí)際上是將該字符的ASCII碼值(無(wú)符號(hào)整數(shù))存儲(chǔ)到內(nèi)存單元中。2023/9/516計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式[例3.1]main()

{printf(“\x4F\x4B\x21\n”); /*等價(jià)于printf(“OK!\n”);*/

printf(“\x15\xAB\n”);

}程序運(yùn)行結(jié)果如下:OK!

§?例如,charch1,ch2; /*定義兩個(gè)字符變量:ch1,ch2*/ch1=’a’;ch2=’b’;/*給字符變量賦值*/附:ASCII碼:美國(guó)(國(guó)家)信息交換標(biāo)準(zhǔn)(代)碼,給256個(gè)字符(包括字母、數(shù)字、標(biāo)點(diǎn)符號(hào)、控制字符及其他符號(hào))分配數(shù)值,用于在不同計(jì)算機(jī)硬件和軟件系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)傳輸標(biāo)準(zhǔn)化,在大多數(shù)的小型機(jī)和全部的個(gè)人計(jì)算機(jī)都使用此碼。2023/9/517計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式例如,2023/8/317計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、2.特性字符數(shù)據(jù)在內(nèi)存中存儲(chǔ)的是字符的ASCII碼──一個(gè)無(wú)符號(hào)整數(shù),其形式與整數(shù)的存儲(chǔ)形式一樣,所以C語(yǔ)言允許字符型數(shù)據(jù)與整型數(shù)據(jù)之間通用。(1)一個(gè)字符型數(shù)據(jù),既可以字符形式輸出,也可以整數(shù)形式輸出。

[例3.2]字符變量的字符形式輸出和整數(shù)形式輸出。

/*程序功能:用字符形式和整數(shù)形式輸出字符變量*/

2023/9/518計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式main()

{charch1,ch2;

ch1='a';ch2='b';printf(“ch1=%c,ch2=%c\n”,ch1,ch2);

printf(“ch1=%d,ch2=%d\n”,ch1,ch2);

}

2.特性2023/8/318計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型程序運(yùn)行結(jié)果:

ch1=a,ch2=b

ch1=97,ch2=98(2)允許對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)就是對(duì)它們的ASCII碼值進(jìn)行算術(shù)運(yùn)算。2023/9/519計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式程序運(yùn)行結(jié)果:

ch1=a,ch2=b

main()

{charch1,ch2;

ch1=‘a(chǎn)’;ch2=‘B’;

/*字母的大小寫轉(zhuǎn)換*/

printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32);

/*用字符形式輸出一個(gè)大于256的數(shù)值*/

printf("ch1+200=%d\n",ch1+200);

printf("ch1+200=%c\n",ch1+200);

printf("ch1+256=%d\n",ch1+256);

printf("ch1+256=%c\n",ch1+256);

}思考:用字符形式輸出一個(gè)大于256的數(shù)值,會(huì)得到什么結(jié)果?2023/9/520計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式[例3.3]字符數(shù)據(jù)的算術(shù)運(yùn)算。

/*程序功能:字符數(shù)據(jù)的算術(shù)運(yùn)算*/

main()

{charch1,c程序運(yùn)行結(jié)果:ch1=A,ch2=bch1+200=297ch1+200=)ch1+256=353ch1+256=a 3.5.3字符串常量1.字符串常量的概念和字符串長(zhǎng)度字符串常量是用一對(duì)雙引號(hào)括起來(lái)的若干字符序列。字符串中字符的個(gè)數(shù)稱為字符串長(zhǎng)度。長(zhǎng)度為0的字符串(即一個(gè)字符都沒有的字符串)稱為空串,表示為“”(一對(duì)緊連的雙引號(hào))。2023/9/521計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式程序運(yùn)行結(jié)果:2023/8/321計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)例如,“Howdoyoudo.”、“Goodmorning.”等,都是字符串常量,其長(zhǎng)度分別為14和13(空格也是一個(gè)字符)。

如果反斜杠和雙引號(hào)作為字符串中的有效字符,則必須使用轉(zhuǎn)義字符。例如:(1)C:\msdos\v6.22→"C:\\msdos\\v6.22"

(2)Isay:"Goodbye!"→"Isay:\"Goodbye!\""2.字符串的存儲(chǔ)C語(yǔ)言規(guī)定:在存儲(chǔ)字符串常量時(shí),由系統(tǒng)在字符串的末尾自動(dòng)加一個(gè)‘\0’作為字符串的結(jié)束標(biāo)志。注意:在源程序中書寫字符串常量時(shí),不必加結(jié)束字符‘\0’,否則畫蛇添足。

2023/9/522計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式例如,“Howdoyoudo.”、“Goodmorn如果有一個(gè)字符串為“CHINA”,則它在內(nèi)存中的實(shí)際存儲(chǔ)如下所示:最后一個(gè)字符'\0'是系統(tǒng)自動(dòng)加上的,它占用6字節(jié)而非5字節(jié)內(nèi)存空間。綜上所述,字符常量'A'與字符串常量"A"是兩回事:(1)定界符不同:字符常量使用單引號(hào),而字符串常量使用雙引號(hào);(2)長(zhǎng)度不同:字符常量的長(zhǎng)度固定為1,而字符串常量的長(zhǎng)度,可以是0,也可以是某個(gè)整數(shù);(3)存儲(chǔ)要求不同:字符常量存儲(chǔ)的是字符的ASCII碼值,而字符串常量,除了要存儲(chǔ)有效的字符外,還要存儲(chǔ)一個(gè)結(jié)束標(biāo)志’\0’。CHINA\02023/9/523計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式如果有一個(gè)字符串為“CHINA”,則它在內(nèi)存中的實(shí)際存儲(chǔ)如下3.6算術(shù)運(yùn)算與算術(shù)表達(dá)式在C語(yǔ)言中,除控制語(yǔ)句和輸入輸出函數(shù)外,其它所有基本操作都作為運(yùn)算符處理。

1.五種基本算術(shù)運(yùn)算符

+、-(減法/取負(fù))、*、/、%(求余數(shù))(1)關(guān)于除法運(yùn)算/C語(yǔ)言規(guī)定:兩個(gè)整數(shù)相除,其商為整數(shù),小數(shù)部分被舍棄。例如,5/2=2。

(2)關(guān)于求余數(shù)運(yùn)算%要求兩側(cè)的操作數(shù)均為整型數(shù)據(jù),否則出錯(cuò)。

2023/9/524計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.6算術(shù)運(yùn)算與算術(shù)表達(dá)式在C語(yǔ)言中,除控制語(yǔ)句和輸入2.表達(dá)式和算術(shù)表達(dá)式(1)表達(dá)式的概念用運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(常量、變量和函數(shù)等)連接起來(lái)的、符合C語(yǔ)言語(yǔ)法規(guī)則的式子,稱為表達(dá)式。單個(gè)常量、變量或函數(shù),可以看作是表達(dá)式的一種特例。將單個(gè)常量、變量或函數(shù)構(gòu)成的表達(dá)式稱為簡(jiǎn)單表達(dá)式,其它表達(dá)式稱之為復(fù)雜表達(dá)式。2023/9/525計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.表達(dá)式和算術(shù)表達(dá)式2023/8/325計(jì)算機(jī)程序設(shè)計(jì)-第(2)算術(shù)表達(dá)式的概念表達(dá)式中的運(yùn)算符都是算術(shù)運(yùn)算符。例如,3+6*9、(x+y)/2-1等,都是算術(shù)表達(dá)式。良好的源程序書寫習(xí)慣:在表達(dá)式中,在雙目運(yùn)算符的左右兩側(cè)各加一個(gè)空格,可增強(qiáng)程序的可讀性。請(qǐng)比較表達(dá)式“(x+y)/2–1”與“(x+y)/2–1”,您認(rèn)為哪個(gè)的可讀性更好一些?3.運(yùn)算符的優(yōu)先級(jí)與結(jié)合性(P70)(1)C語(yǔ)言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。所謂結(jié)合性是指,當(dāng)一個(gè)操作數(shù)兩側(cè)的運(yùn)算符具有相同的優(yōu)先級(jí)時(shí),該操作數(shù)是先與左邊的運(yùn)算符結(jié)合,還是先與右邊的運(yùn)算符結(jié)合。2023/9/526計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式(2)算術(shù)表達(dá)式的概念2023/8/326計(jì)算機(jī)程序設(shè)計(jì)-第自左至右的結(jié)合方向,稱為左結(jié)合性。反之,稱為右結(jié)合性。結(jié)合性是C語(yǔ)言的獨(dú)有概念。除單目運(yùn)算符、賦值運(yùn)算符和條件運(yùn)算符是右結(jié)合性外,其它運(yùn)算符都是左結(jié)合性。(2)表達(dá)式求值1)按運(yùn)算符的優(yōu)先級(jí)高低次序執(zhí)行。例如,先乘除后加減。2)如果在一個(gè)運(yùn)算對(duì)象(或稱操作數(shù))兩側(cè)的運(yùn)算符的優(yōu)先級(jí)相同,則按C語(yǔ)言規(guī)定的結(jié)合方向(結(jié)合性)進(jìn)行。2023/9/527計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式自左至右的結(jié)合方向,稱為左結(jié)合性。反之,稱為右結(jié)合性。202例如,算術(shù)運(yùn)算符的結(jié)合方向是“自左至右”,即:在執(zhí)行“a–b+c”時(shí),變量b先與減號(hào)結(jié)合,執(zhí)行“a-b”;然后再執(zhí)行加c的運(yùn)算。4.數(shù)據(jù)類型轉(zhuǎn)換(1)在C語(yǔ)言中,整型、實(shí)型和字符型數(shù)據(jù)間可以混合運(yùn)算(因?yàn)樽址麛?shù)據(jù)與整型數(shù)據(jù)可以通用)。如果一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則系統(tǒng)按“先轉(zhuǎn)換、后運(yùn)算”的原則,首先將數(shù)據(jù)自動(dòng)轉(zhuǎn)換成同一類型,然后在同一類型數(shù)據(jù)間進(jìn)行運(yùn)算。轉(zhuǎn)換規(guī)則如p91圖3-6所示。2023/9/528計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式例如,算術(shù)運(yùn)算符的結(jié)合方向是“自左至右”,即:在執(zhí)行“a–1)橫向向左的箭頭,表示必須的轉(zhuǎn)換。char和short型必須轉(zhuǎn)換成int型,float型必須轉(zhuǎn)換成double型。2)縱向向上的箭頭,表示不同類型的轉(zhuǎn)換方向。例如,int型與double型數(shù)據(jù)進(jìn)行混合運(yùn)算,則先將int型數(shù)據(jù)轉(zhuǎn)換成double型,然后在兩個(gè)同類型的數(shù)據(jù)間進(jìn)行運(yùn)算,結(jié)果為double型。注意:箭頭方向只表示數(shù)據(jù)類型由低向高轉(zhuǎn)換,不要理解為int型先轉(zhuǎn)換成unsigned型,再轉(zhuǎn)換成long型,最后轉(zhuǎn)換成double型。(2)除自動(dòng)轉(zhuǎn)換外,C語(yǔ)言也允許強(qiáng)制轉(zhuǎn)換。數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的一般格式為:

(要轉(zhuǎn)換成的數(shù)據(jù)類型)(被轉(zhuǎn)換的表達(dá)式)2023/9/529計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式1)橫向向左的箭頭,表示必須的轉(zhuǎn)換。char和short型

當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式時(shí),外面的一對(duì)圓括號(hào)可以缺省。例如,(double)a(等價(jià)于(double)(a))/*將變量a的值轉(zhuǎn)換成double型*/(int)(x+y) /*將x+y的結(jié)果轉(zhuǎn)換成int型*/(float)5/2(等價(jià)于(float)(5)/2)/*將5轉(zhuǎn)換成實(shí)型,再除以2(=2.5)*/(float)(5/2) /*將5整除2的結(jié)果(2)轉(zhuǎn)換成實(shí)型(2.0)*/

注意:強(qiáng)制轉(zhuǎn)換類型得到的是一個(gè)所需類型的中間量,原表達(dá)式類型并不發(fā)生變化。例如,(double)a只是將變量a的值轉(zhuǎn)換成一個(gè)double型的中間量,其數(shù)據(jù)類型并未轉(zhuǎn)換成double型。2023/9/530計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式時(shí),外面的一對(duì)圓括號(hào)可以3.7賦值運(yùn)算與賦值表達(dá)式

1.賦值運(yùn)算賦值符號(hào)“=”就是賦值運(yùn)算符,它的作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量。賦值運(yùn)算符的一般形式為:變量=賦值表達(dá)式

例如,x=5

y=(float)5/2

如果表達(dá)式值的類型,與被賦值變量的類型不一致,但都是數(shù)值型或字符型時(shí),系統(tǒng)自動(dòng)地將表達(dá)式的值轉(zhuǎn)換成被賦值變量的數(shù)據(jù)類型,然后再賦值給變量。

思考題:假設(shè)變量num的數(shù)據(jù)類型為float,其值為2.5,則執(zhí)行“num=(int)num”后,num的值等于多少?2023/9/531計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.7賦值運(yùn)算與賦值表達(dá)式1.賦值運(yùn)算2023/2.復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算符是由賦值運(yùn)算符之前再加一個(gè)雙目運(yùn)算符構(gòu)成的。復(fù)合賦值運(yùn)算的一般格式為:變量雙目運(yùn)算符=表達(dá)式└──┬──┘復(fù)合賦值運(yùn)算符它等價(jià)于:變量=變量雙目運(yùn)算符(表達(dá)式)。當(dāng)表達(dá)式為簡(jiǎn)單表達(dá)式時(shí),表達(dá)式外的一對(duì)圓括號(hào)才可缺省,否則可能出錯(cuò)。例如,x+=3 /*等價(jià)于x=x+3*/y*=x+6/*等價(jià)于y=y*(x+6),而不是y=y*x+6*/2023/9/532計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.復(fù)合賦值運(yùn)算2023/8/332計(jì)算機(jī)程序設(shè)計(jì)-第三章C語(yǔ)言規(guī)定的10種復(fù)合賦值運(yùn)算符如下:+=,-=,*=,/=,%=;/*復(fù)合算術(shù)運(yùn)算符(5個(gè))*/&=,^=,|=,<<=,>>=;/*復(fù)合位運(yùn)算符(5個(gè))*/3.賦值表達(dá)式由賦值運(yùn)算符或復(fù)合賦值運(yùn)算符,將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的表達(dá)式,稱為賦值表達(dá)式。(1)一般格式變量(復(fù)合)賦值運(yùn)算符表達(dá)式(2)賦值表達(dá)式的值任何一個(gè)表達(dá)式都有一個(gè)值,賦值表達(dá)式也不例外。被賦值變量的值,就是賦值表達(dá)式的值。例如,“a=5”這個(gè)賦值表達(dá)式,變量a的值“5”就是它的值。2023/9/533計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式C語(yǔ)言規(guī)定的10種復(fù)合賦值運(yùn)算符如下:2023/8/333計(jì)3.8C語(yǔ)言特有的運(yùn)算和運(yùn)算符

2.用法與運(yùn)算規(guī)則

2023/9/534計(jì)算機(jī)程序設(shè)計(jì)-第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式3.8.1自增(++)、自減(--)運(yùn)算

自增、自減運(yùn)算符都有兩種用法:

(1)前置運(yùn)算──運(yùn)算符放在變量之前:++變量、--變量

先使變量的值增(或減)1,然后再以變化后的值參與其它運(yùn)算,即先增減、后運(yùn)算。

1.作用

自增運(yùn)算使單個(gè)變量的值增1,自減運(yùn)算使單個(gè)變量的值減1。(2)后置運(yùn)算─運(yùn)算符放在變量之后:變量++、變量--

變量先參與其它運(yùn)算,然后再使變量的值增(或減)1,即先運(yùn)算、后增減。

3.8

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論