




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶市渝北區(qū)六校聯(lián)盟2024-2025學(xué)年八年級(jí)下學(xué)期第一次(半期)教學(xué)大練兵物理試卷(無(wú)答案)
- 梧州學(xué)院《口腔生物學(xué)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西省上饒市第六中學(xué)2024-2025學(xué)年下學(xué)期初三年級(jí)五調(diào)考試生物試題含解析
- 寧夏工商職業(yè)技術(shù)學(xué)院《Oacle數(shù)據(jù)庫(kù)系統(tǒng)及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭州科技職業(yè)學(xué)院《組織學(xué)與胚胎學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶能源職業(yè)學(xué)院《旅游調(diào)查與社會(huì)學(xué)研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)治學(xué)院《專業(yè)著作讀書會(huì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長(zhǎng)春科技學(xué)院《逆境分子生物學(xué)前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北體育職業(yè)學(xué)院《匯編語(yǔ)言與微機(jī)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧夏中學(xué)寧縣2025年初三下學(xué)期開學(xué)考試(第七次)英語(yǔ)試題試卷含答案
- DB15-T 3967.3-2025 氣候可行性論證技術(shù)規(guī)范 第3部分:水利工程
- Module 9 Friendship 大單元整體教學(xué)設(shè)計(jì)2023-2024學(xué)年外研(新標(biāo)準(zhǔn))版八年級(jí)下冊(cè)
- 《人工智能技術(shù)基礎(chǔ)》課件-第五章 深度學(xué)習(xí)
- 2025年戶外廣告牌租賃合同(合同范本)
- 2025年project使用培訓(xùn)標(biāo)準(zhǔn)課件
- 文獻(xiàn)檢索與科技論文寫作考核大綱
- 湖北淺圓倉(cāng)滑模施工方案
- 服裝廠新員工培訓(xùn)
- 高考英語(yǔ)總復(fù)習(xí)《閱讀七選五》專項(xiàng)測(cè)試卷含參考答案
- 《淘寶開網(wǎng)店詳解》課件
- 《鐵路技術(shù)管理規(guī)程》(普速鐵路部分)
評(píng)論
0/150
提交評(píng)論