第04講 算術(shù)運(yùn)算符、表達(dá)式賦值運(yùn)算及逗號(hào)運(yùn)算_第1頁(yè)
第04講 算術(shù)運(yùn)算符、表達(dá)式賦值運(yùn)算及逗號(hào)運(yùn)算_第2頁(yè)
第04講 算術(shù)運(yùn)算符、表達(dá)式賦值運(yùn)算及逗號(hào)運(yùn)算_第3頁(yè)
第04講 算術(shù)運(yùn)算符、表達(dá)式賦值運(yùn)算及逗號(hào)運(yùn)算_第4頁(yè)
第04講 算術(shù)運(yùn)算符、表達(dá)式賦值運(yùn)算及逗號(hào)運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

1、1第4講算術(shù)運(yùn)算符、表達(dá)式 賦值運(yùn)算與逗號(hào)運(yùn)算 2&整型變量n占字節(jié)數(shù)隨機(jī)器不同而不同,一般占2個(gè)字節(jié)。nshortintlong。n可用sizeof(類型標(biāo)識(shí)符)測(cè)量。&實(shí)型變量nfloat:占4字節(jié),提供7位有效數(shù)字ndouble:占8字節(jié),提供1516位有效數(shù)字&字符型變量n字符變量存放字符ASCII碼nchar與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算復(fù)習(xí)32.6 算術(shù)運(yùn)算符1.基本算術(shù)運(yùn)算符有:基本算術(shù)運(yùn)算符有: 、* *、/ /、% % 注意事項(xiàng)注意事項(xiàng)兩個(gè)整型數(shù)據(jù)相除的結(jié)果只能為整型數(shù)值,如兩個(gè)整型數(shù)據(jù)相除的結(jié)果只能為整型數(shù)值,如7 72 2的結(jié)果為的結(jié)果為3 3 “+

2、 +”或或“- -” 用作單目運(yùn)算符時(shí)只能有一個(gè)運(yùn)算量,用作單目運(yùn)算符時(shí)只能有一個(gè)運(yùn)算量,如如x=-5x=-5,則則+x+x的值還是的值還是-5-5,而,而-x-x的值為的值為+5+5。 求余運(yùn)算只能在兩個(gè)整型數(shù)據(jù)之間進(jìn)行,如求余運(yùn)算只能在兩個(gè)整型數(shù)據(jù)之間進(jìn)行,如9%59%5的的值為值為4 4,而,而9.5%39.5%3為非法的運(yùn)算為非法的運(yùn)算 當(dāng)運(yùn)算量為負(fù)數(shù)時(shí),所得結(jié)果的符號(hào)未作明確的規(guī)定。當(dāng)運(yùn)算量為負(fù)數(shù)時(shí),所得結(jié)果的符號(hào)未作明確的規(guī)定。TURBO CTURBO C系統(tǒng)規(guī)定余數(shù)的符號(hào)與被除數(shù)相同。系統(tǒng)規(guī)定余數(shù)的符號(hào)與被除數(shù)相同。 42. 算術(shù)表達(dá)式 用算術(shù)運(yùn)算符和圓括號(hào)將函數(shù)和運(yùn)算對(duì)象(如常

3、用算術(shù)運(yùn)算符和圓括號(hào)將函數(shù)和運(yùn)算對(duì)象(如常量、變量等)按一定的規(guī)則連接起來(lái)就可以構(gòu)成量、變量等)按一定的規(guī)則連接起來(lái)就可以構(gòu)成一個(gè)算術(shù)表達(dá)式,如:一個(gè)算術(shù)表達(dá)式,如:(a(ab)b)* *c c5.05.0、x x* *y y2 2* *sinsin(z z)等都是算術(shù)表達(dá)式)等都是算術(shù)表達(dá)式 表達(dá)式都有一個(gè)值,即運(yùn)算結(jié)果。表達(dá)式都有一個(gè)值,即運(yùn)算結(jié)果。 應(yīng)該注意表達(dá)式中運(yùn)算符的應(yīng)該注意表達(dá)式中運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)和和結(jié)合性結(jié)合性優(yōu)先級(jí)用于決定運(yùn)算中的運(yùn)算順序,即有多個(gè)運(yùn)算符優(yōu)先級(jí)用于決定運(yùn)算中的運(yùn)算順序,即有多個(gè)運(yùn)算符出現(xiàn)時(shí),哪一個(gè)先計(jì)算,哪一個(gè)后計(jì)算。出現(xiàn)時(shí),哪一個(gè)先計(jì)算,哪一個(gè)后計(jì)算。(

4、P34-39)(P34-39)結(jié)合性則決定同一優(yōu)先級(jí)的運(yùn)算符之間的運(yùn)算順序結(jié)合性則決定同一優(yōu)先級(jí)的運(yùn)算符之間的運(yùn)算順序. . C C語(yǔ)言有兩種結(jié)合性即是先左后右還是先右后左。語(yǔ)言有兩種結(jié)合性即是先左后右還是先右后左。(P34-39 )(P34-39 )運(yùn)算符名稱優(yōu)先級(jí)結(jié)合性( )括號(hào)15(最高)自左至右 下標(biāo)指向結(jié)構(gòu)體成員結(jié)構(gòu)體成員!邏輯非14自右至左按位取反增1減1&取地址*取內(nèi)容+、正、負(fù)號(hào)(類型)強(qiáng)制類型轉(zhuǎn)換sizeof計(jì)算類型長(zhǎng)度*乘13自左至右除%求余加12自左至右減按位左移11自左至右按位右移大于10自左至右小于大于或等于小于或等于等于9自左至右!不等于&按位與8自

5、左至右按位異或7自左至右按位或6自左至右&邏輯與5自左至右邏輯或4自左至右?:條件運(yùn)算3自右至左賦值2自右至左 * 復(fù)合運(yùn)算% & ,逗號(hào)1(最低)自左至右7關(guān)于結(jié)合性所謂結(jié)合性是指,當(dāng)一個(gè)操作數(shù)兩側(cè)的運(yùn)算符具有相同的優(yōu)先級(jí)時(shí),該操作數(shù)是先與左邊的運(yùn)算符結(jié)合,還是先與右邊的運(yùn)算符結(jié)合。不同的運(yùn)算符將有不同的結(jié)合性(P34P39)83. 算術(shù)運(yùn)算中的類型轉(zhuǎn)換 在在C C語(yǔ)言中要求參加運(yùn)算的語(yǔ)言中要求參加運(yùn)算的兩個(gè)運(yùn)算量是同一數(shù)兩個(gè)運(yùn)算量是同一數(shù)據(jù)類型據(jù)類型,而運(yùn)算結(jié)果也是該數(shù)據(jù)類型。,而運(yùn)算結(jié)果也是該數(shù)據(jù)類型。 對(duì)數(shù)據(jù)類型不一致的兩個(gè)運(yùn)算量,系統(tǒng)會(huì)進(jìn)行數(shù)對(duì)數(shù)據(jù)類型不一致的兩個(gè)運(yùn)算

6、量,系統(tǒng)會(huì)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,將其中的一個(gè)低級(jí)別類型的數(shù)據(jù)向據(jù)類型轉(zhuǎn)換,將其中的一個(gè)低級(jí)別類型的數(shù)據(jù)向另一個(gè)高級(jí)別類型的數(shù)據(jù)轉(zhuǎn)換(按空間大小和數(shù)另一個(gè)高級(jí)別類型的數(shù)據(jù)轉(zhuǎn)換(按空間大小和數(shù)值范圍),然后才進(jìn)行相應(yīng)的算術(shù)運(yùn)算,運(yùn)算的值范圍),然后才進(jìn)行相應(yīng)的算術(shù)運(yùn)算,運(yùn)算的結(jié)果為其中高級(jí)別類型的數(shù)據(jù)。結(jié)果為其中高級(jí)別類型的數(shù)據(jù)。 高高 double float long(unsigned long) 低低 int(unsigned int) short int、char圖圖2.4 算術(shù)運(yùn)算中的類型轉(zhuǎn)換算術(shù)運(yùn)算中的類型轉(zhuǎn)換9n隱式轉(zhuǎn)換n什么情況下發(fā)生n運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時(shí)n賦值轉(zhuǎn)換-把一個(gè)

7、值賦給與其類型不同的變量時(shí)n輸出轉(zhuǎn)換-輸出時(shí)轉(zhuǎn)換成指定的輸出格式n函數(shù)調(diào)用轉(zhuǎn)換-實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換n運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型10doublefloatlongunsignedintchar,short低高說(shuō)明:必定的轉(zhuǎn)換運(yùn)算對(duì)象類型不同時(shí)轉(zhuǎn)換例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i;

8、 float f; double d; long l;113.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 當(dāng)自動(dòng)類型轉(zhuǎn)換不能達(dá)到目的時(shí),可以使用強(qiáng)當(dāng)自動(dòng)類型轉(zhuǎn)換不能達(dá)到目的時(shí),可以使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符。強(qiáng)制類型轉(zhuǎn)換運(yùn)算符就是用一制類型轉(zhuǎn)換運(yùn)算符。強(qiáng)制類型轉(zhuǎn)換運(yùn)算符就是用一對(duì)括號(hào)括起來(lái)的類型名標(biāo)識(shí)符,其一般格式為:對(duì)括號(hào)括起來(lái)的類型名標(biāo)識(shí)符,其一般格式為: ( (類型名標(biāo)識(shí)符類型名標(biāo)識(shí)符)()(表達(dá)式表達(dá)式) ) 例如:假設(shè)例如:假設(shè)x x為為floatfloat類型,則表達(dá)式類型,則表達(dá)式“x%3”x%3”是不合法的,因?yàn)槭遣缓戏ǖ模驗(yàn)? %運(yùn)算符要求其兩側(cè)的數(shù)據(jù)都必運(yùn)算符要求其兩側(cè)的數(shù)據(jù)都必須是整型數(shù)據(jù)。可以使

9、用表達(dá)式須是整型數(shù)據(jù)??梢允褂帽磉_(dá)式“(int)x%3(int)x%3”達(dá)到達(dá)到求余數(shù)的目的,即先將實(shí)型變量求余數(shù)的目的,即先將實(shí)型變量x x強(qiáng)制轉(zhuǎn)換為整型強(qiáng)制轉(zhuǎn)換為整型值,然后再進(jìn)行取余運(yùn)算。值,然后再進(jìn)行取余運(yùn)算。 12n顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)n一般形式:(類型名)(表達(dá)式)例 (int)(x+y) (將x+y的值轉(zhuǎn)換為整型) (int)x+y (將x的值轉(zhuǎn)換為整型然后與y相加) (double)(3/2) (將3/2的值轉(zhuǎn)換為double) (int)3.6 (將3.6轉(zhuǎn)換為整型) n說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變 例 main() float x; int i; x

10、=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時(shí)可能發(fā)生Ch2_007.cCh2_008.c132.7 賦值運(yùn)算符與賦值表達(dá)式 變量的值在程序的運(yùn)行過程中能夠發(fā)生變化主變量的值在程序的運(yùn)行過程中能夠發(fā)生變化主要是通過對(duì)變量進(jìn)行賦值來(lái)完成的。如果在程序要是通過對(duì)變量進(jìn)行賦值來(lái)完成的。如果在程序中沒有賦值操作,則變量的值也就不會(huì)發(fā)生變化。中沒有賦值操作,則變量的值也就不會(huì)發(fā)生變化。 1.1.賦值運(yùn)算符賦值運(yùn)算符()的作用是把一個(gè)數(shù)據(jù)或表達(dá)()的作用是把一個(gè)數(shù)據(jù)或表達(dá)式的值賦給一個(gè)變量。式的值賦給

11、一個(gè)變量。例如:例如:x=3x=3 賦值運(yùn)算符的左邊只能是變量,不允許是算術(shù)表賦值運(yùn)算符的左邊只能是變量,不允許是算術(shù)表達(dá)式或常量。達(dá)式或常量。例如:例如:x+1=3x+1=3 賦值運(yùn)算符與數(shù)學(xué)中的等號(hào)不同,賦值運(yùn)算符求賦值運(yùn)算符與數(shù)學(xué)中的等號(hào)不同,賦值運(yùn)算符求解以后能夠得到一個(gè)運(yùn)算結(jié)果。解以后能夠得到一個(gè)運(yùn)算結(jié)果。 142. 賦值表達(dá)式 由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為賦值表達(dá)式。來(lái)的式子稱為賦值表達(dá)式。 賦值表達(dá)式的一般形式為:賦值表達(dá)式的一般形式為:變量變量 = = 表達(dá)式表達(dá)式 例如:例如:x=3x=3* *5 5 執(zhí)行過程執(zhí)

12、行過程:先將賦值運(yùn)算符右邊表達(dá)式的值求:先將賦值運(yùn)算符右邊表達(dá)式的值求出來(lái),然后將該值賦給左邊的變量,被賦值變出來(lái),然后將該值賦給左邊的變量,被賦值變量的值就是整個(gè)賦值表達(dá)式的值。量的值就是整個(gè)賦值表達(dá)式的值。153. 復(fù)合的賦值運(yùn)算符 例如:例如:x+=3 x+=3 等價(jià)于等價(jià)于 x=x+3x=x+3。 x%=3 x%=3 等價(jià)于等價(jià)于 x=x%3x=x%3。注意:這些運(yùn)算符都是由多個(gè)字符組合而成的,注意:這些運(yùn)算符都是由多個(gè)字符組合而成的,其字符之間不允許有空格。其字符之間不允許有空格。 16a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3174. 自加、自減運(yùn)算符 自加

13、(自加(+)自減()自減(-)運(yùn)算符的作用是使變量的)運(yùn)算符的作用是使變量的值自動(dòng)加(減)值自動(dòng)加(減)1 1。 自加、自減運(yùn)算符是單目運(yùn)算符。自加、自減運(yùn)算符是單目運(yùn)算符。 執(zhí)行過程執(zhí)行過程變量在自加自減運(yùn)算符之前(變量在自加自減運(yùn)算符之前(k+k+或或k-)k-)時(shí),先使用時(shí),先使用變量的值,然后自加或自減。變量的值,然后自加或自減。 如:如:k=3;x=5+k+;k=3;x=5+k+;結(jié)果結(jié)果x的值為的值為8 8,k k的值為的值為4 4。變量在自加自減運(yùn)算符之后(變量在自加自減運(yùn)算符之后(+k+k或或-k)-k)時(shí),先自加時(shí),先自加或自減,然后使用變量的值。或自減,然后使用變量的值。

14、如:如:k=3;x=+k+5;k=3;x=+k+5;結(jié)果結(jié)果x的值為的值為9 9,k k的值為的值為4 4。 注意:注意:自增自減運(yùn)算只能針對(duì)簡(jiǎn)單變量而言。自增自減運(yùn)算只能針對(duì)簡(jiǎn)單變量而言。 18 例例 自增、自減運(yùn)算符的用法與運(yùn)算規(guī)則示例。/*程序功能:自增、自減運(yùn)算符的用法與運(yùn)算規(guī)則示例*/main() int x=6, y; printf(x=%dn,x); /*輸出x的初值*/ y = +x; /*前置運(yùn)算*/ printf(y=+x: x=%d,y=%dn,x,y); y = x-; /*后置運(yùn)算先將x=7賦給y,然后執(zhí)行x-1 */ printf(y=x-: x=%d,y=%dn,

15、x,y); 程序運(yùn)行結(jié)果:x=6y=+x: x=7,y=7y=x-: x=6,y=7 195. 賦值運(yùn)算中的類型轉(zhuǎn)換 系統(tǒng)自動(dòng)將賦值運(yùn)算符右邊的數(shù)據(jù)類型系統(tǒng)自動(dòng)將賦值運(yùn)算符右邊的數(shù)據(jù)類型轉(zhuǎn)換成賦值運(yùn)算符左邊變量的類型。轉(zhuǎn)換成賦值運(yùn)算符左邊變量的類型。1.1.將實(shí)型數(shù)據(jù)轉(zhuǎn)換為整型值時(shí)直接舍棄實(shí)數(shù)的小將實(shí)型數(shù)據(jù)轉(zhuǎn)換為整型值時(shí)直接舍棄實(shí)數(shù)的小數(shù)部分。數(shù)部分。若其值超出整型值的范圍則出錯(cuò)。若其值超出整型值的范圍則出錯(cuò)。 2.2.將整型值轉(zhuǎn)換為實(shí)型值時(shí)整數(shù)部分取整型值,將整型值轉(zhuǎn)換為實(shí)型值時(shí)整數(shù)部分取整型值,小數(shù)部分的值為零。小數(shù)部分的值為零。3.3.將雙精度的實(shí)型數(shù)據(jù)轉(zhuǎn)換為單精度的實(shí)型數(shù)據(jù)將雙精度的實(shí)

16、型數(shù)據(jù)轉(zhuǎn)換為單精度的實(shí)型數(shù)據(jù)時(shí)截取其小數(shù)部分中前面的時(shí)截取其小數(shù)部分中前面的7 7位有效數(shù)字(十位有效數(shù)字(十進(jìn)制數(shù)),指數(shù)部分保持不變。進(jìn)制數(shù)),指數(shù)部分保持不變。超值錯(cuò)。超值錯(cuò)。20賦值運(yùn)算中的類型轉(zhuǎn)換(續(xù))4.4.將整型數(shù)據(jù)轉(zhuǎn)換為取值范圍更大的整型數(shù)據(jù)時(shí),對(duì)于有符將整型數(shù)據(jù)轉(zhuǎn)換為取值范圍更大的整型數(shù)據(jù)時(shí),對(duì)于有符號(hào)數(shù),用其符號(hào)位的值向前擴(kuò)展。對(duì)于無(wú)符號(hào)數(shù),則用號(hào)數(shù),用其符號(hào)位的值向前擴(kuò)展。對(duì)于無(wú)符號(hào)數(shù),則用0 0向前擴(kuò)展。向前擴(kuò)展。5.5.將整型數(shù)據(jù)轉(zhuǎn)換為取值范圍更小的整型數(shù)據(jù)時(shí),按所需將整型數(shù)據(jù)轉(zhuǎn)換為取值范圍更小的整型數(shù)據(jù)時(shí),按所需的位數(shù)的位數(shù)從低位直接截取從低位直接截取。超值錯(cuò)。超值錯(cuò)。6 6同等長(zhǎng)度的整型數(shù)據(jù)和無(wú)符號(hào)整型數(shù)據(jù)之間的轉(zhuǎn)換。同等長(zhǎng)度的整型數(shù)據(jù)和無(wú)符號(hào)整型數(shù)據(jù)之間的轉(zhuǎn)換。212.8 逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式 逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符(,)又稱為順序求值運(yùn)算符

溫馨提示

  • 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)論