C語(yǔ)言中自增自減運(yùn)算符的使用_第1頁(yè)
C語(yǔ)言中自增自減運(yùn)算符的使用_第2頁(yè)
C語(yǔ)言中自增自減運(yùn)算符的使用_第3頁(yè)
C語(yǔ)言中自增自減運(yùn)算符的使用_第4頁(yè)
C語(yǔ)言中自增自減運(yùn)算符的使用_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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、C語(yǔ)言中自增自減運(yùn)算符的使用孫月玲(鹽城機(jī)電高等職業(yè)技術(shù)學(xué)校,江蘇 鹽城 )摘要:C語(yǔ)言的內(nèi)部運(yùn)算符很豐富,運(yùn)算符是告訴我們編譯程序執(zhí)行特定算數(shù)或裸機(jī)操作的符號(hào)。其中,最難理解的是在使用過(guò)程中最易得到模棱兩可的結(jié)果自增自減運(yùn)算符,對(duì)著兩個(gè)運(yùn)算符的使用做了詳細(xì)說(shuō)明。關(guān)鍵字:C語(yǔ)言,自增運(yùn)算符,自減運(yùn)算符中圖分類(lèi)號(hào):TP312 文獻(xiàn)標(biāo)示碼:AUse of Autoincrement and Autodecrement Operators in C LanguageSUN Yue-ling(Yancheng Colleage of Mechatronic Technology,Yancheng,Ch

2、ina)Abstract:C language internal operator is very rich ,the operator tells us the compiler to perform arithmetic or logic operation symbol. Amony them,the most difficult to understand the use of the most easily to get ready to accept in the process either course result is autoincrement and autodecre

3、ment operators. This paper focuses on the use of these two operators in detail.Key words:C language,increment operator,decrement operator隨著電子計(jì)算機(jī)的迅速發(fā)展和廣泛應(yīng)用,C語(yǔ)言在計(jì)算機(jī)軟件開(kāi)發(fā)中的作用日益重要,越來(lái)越顯示出它的魅力,已成為世界上廣泛流行的、最有發(fā)展前途的計(jì)算機(jī)高級(jí)語(yǔ)言。它適用于編寫(xiě)各種系統(tǒng)軟件,也適用于編寫(xiě)各種應(yīng)用軟件。在C語(yǔ)言的學(xué)習(xí)過(guò)程中,筆者對(duì)自增運(yùn)算符和自減運(yùn)算符的使用作了分析。1 自增和自減運(yùn)算符的作用和特點(diǎn) 自增運(yùn)算符(+)和自減

4、運(yùn)算符(-)都是單目運(yùn)算符,它們的作用分別是使操作數(shù)加1和減1,換句話說(shuō):x=x+1;同+x,x=x-1;同x,自增和自減運(yùn)算符可用在操作數(shù)之前(前綴形式),也可放在操作數(shù)之后(后綴形式)。例如:“x=x+1;”可寫(xiě)成“+x;”或“x+;”,“x=x-1;”可寫(xiě)成“-x;”或“x-;”,但是表達(dá)式中這兩種用法是有區(qū)別的,首先自增運(yùn)算符和自減運(yùn)算符在操作數(shù)之前(前綴形式)“+x,-x”:先使變量x的值加1或減1,再使用變量x的值。其次自增運(yùn)算符或自減運(yùn)算符在操作數(shù)之后(后綴形式)“x+,x-”:先使用變量x的值,在使變量x的值加1減1。請(qǐng)看下例:自增和自減運(yùn)算符前綴形式和后綴形式在實(shí)際運(yùn)用中的區(qū)

5、別。X=10;Y=+x;此時(shí),執(zhí)行后y=11,x=11。如果程序改為:X=10;Y=x+;則執(zhí)行后y=10,x=11。當(dāng)自增和自減運(yùn)算符和其他運(yùn)算符結(jié)合在一個(gè)表達(dá)式中,情況就比較復(fù)雜。例如:設(shè)a=1;b=2求c=(+a)+b(1)c=(a-)+b(2)分析:在式(1)中a是前綴形式,先使a加1值為2,再參與其他運(yùn)算(算術(shù)運(yùn)算和賦值運(yùn)算),結(jié)果c的值為4;在式(2)中,a是后綴形式,先使a和b進(jìn)行運(yùn)算,結(jié)果為3,賦給c,c的值為3,在使a減1。注意事項(xiàng):1.使運(yùn)算對(duì)象的值在原來(lái)的基礎(chǔ)上加1或減1是自增運(yùn)算符和自減運(yùn)算符的特點(diǎn)。比如:x+就好比x=x+1,所以自增或自減運(yùn)算其實(shí)和賦值表達(dá)式的功能是

6、一樣的。 2.單目運(yùn)算符中還包括“+”和“- -”,運(yùn)算符兩邊的運(yùn)算對(duì)象的數(shù)據(jù)類(lèi)型可以是整型的,也可以是實(shí)型,但不能是常量或表達(dá)式,因?yàn)榻o常量或表達(dá)式賦值是錯(cuò)誤的。因此,類(lèi)似于(a+b)-,+8等都是不合法的。 3.表達(dá)式若是由自增或自減運(yùn)算符構(gòu)成的,它的運(yùn)算符就可以出現(xiàn)在運(yùn)算對(duì)象的前面,也可以出現(xiàn)在運(yùn)算對(duì)象后面,也就是前綴和后綴形式都可以,所以說(shuō),對(duì)于運(yùn)算對(duì)象而言,效果是一樣的,但是從表達(dá)式的角度看,結(jié)果卻是不一樣的。 4.從優(yōu)先級(jí)上來(lái)看,運(yùn)算符“+”和“”的結(jié)合方向是“從右到左”。假設(shè)有一表達(dá)式a+,其中a的初始值為3,因?yàn)樵谶\(yùn)算符中,負(fù)號(hào)運(yùn)算符與自增運(yùn)算符的優(yōu)先級(jí)是一樣的,運(yùn)算順序也是“

7、從右到左”,因此對(duì)該式進(jìn)行運(yùn)算實(shí)際上就是對(duì)-(a+)進(jìn)行運(yùn)算,此時(shí)自增運(yùn)算符“+”為后綴形式出現(xiàn),(a+)的值為3,因此-(a+)的值為-3,然后a自增為4. 5.同一個(gè)表達(dá)式中最好不要出現(xiàn)多個(gè)類(lèi)似i+或+i,例如寫(xiě)成:a+*+a+a-*-a,這樣的表達(dá)式不僅看起來(lái)讓人覺(jué)得模糊,而且在編譯的時(shí)候也會(huì)出現(xiàn)不同的解釋,進(jìn)行不同的處理,所以得出的結(jié)果也是不一樣的,所以必要時(shí)還需加些括號(hào)。2 自增和自減運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 自增和自減運(yùn)算符的優(yōu)先級(jí)比算術(shù)運(yùn)算符高,它與邏輯非運(yùn)算符(!)和負(fù)號(hào)運(yùn)算符的運(yùn)算順序是相同的,都是“從右到左”的結(jié)合方向,實(shí)際上就相當(dāng)于計(jì)算-(j+)這個(gè)表達(dá)式,這時(shí)自增運(yùn)算符+

8、為后綴形式,(j+)的值為3,而-(j+)的值為-3,然后j的值自增為4.3 自增和自減運(yùn)算符的應(yīng)用 例1:假設(shè)i的原值等于3,請(qǐng)看下面程序的運(yùn)行結(jié)果。 #includestdio.h void main() int i,j,k; char s; i=3; k=i+; printf(i=%dtk=%dn, i,k); i=3; k=(i+)+(i+)+(i+); printf(i=%dtk=%dn,i,k) i=3; k=(+i)+(+i)+(+i); printf(i=%dtk=%dn,i,k); scanf(%s,s); 分析:1.因?yàn)閗=i+,使用i后i+1。因此先將i的原值3取出賦給k

9、(k=3),再實(shí)現(xiàn)自增,i=4,所以第1行輸出:i=4,k=3。 2.先將i的原值3取出來(lái),作為表達(dá)式中i的值,因此先進(jìn)行3個(gè)i相加,k=3+3+3=9,然后,再實(shí)現(xiàn)自增,i的值變?yōu)?,所以第2行輸出:i=6,k=9. 3.因?yàn)槭?i,先實(shí)現(xiàn)自增,然后,再進(jìn)行表達(dá)式運(yùn)算并賦值給k,因此,k=16。所以第3行輸出:i=6,k=16。 例2:分析下面程序運(yùn)行后的輸出。 main() int i=1,j=2,k=3; if(i+=1 & (+ +j= =3|k+ += =3) printf(%d%d%dn,i,j,k); 分析:該程序中的第1條語(yǔ)句分別給3個(gè)變量賦初值,第3句是個(gè)判斷句,其中,有3個(gè)

10、是關(guān)于自增自減的運(yùn)算,第3句中應(yīng)先執(zhí)行后面括號(hào)中的表達(dá)式,其中+j是前綴形式,所以,+j的運(yùn)算是先將j的值自增1,然后再和3進(jìn)行比較,因此+j=3的值為真,而緊跟著后面的是個(gè)|(或者),“|”要求只要有一個(gè)為真就行,所以后面的k+=3不執(zhí)行,所以這時(shí)j的值為3,k的值為3,最后執(zhí)行i+=1和后面的與運(yùn)算,i是后綴的形式,因此先比較,再將i自增,所以,本程序的最終結(jié)果為2,3,3。 例3:分析程序運(yùn)行結(jié)果 #include main() int y=9; for(;y0;y-) if(y%3= =0) printf(%d,-y); 分析:該題是個(gè)循環(huán),當(dāng)y為9的時(shí)候,執(zhí)行第1次,因9能被3整除,

11、所以y要自減1然后輸出8,之后循環(huán)變量要自減,也就是y為7的時(shí)候執(zhí)行,因?yàn)椴荒鼙徽灾皇茄h(huán)變量自減,當(dāng)y為6時(shí),要自減1然后輸出5,依次類(lèi)推,最后一次輸出2,因此本程序的最終輸出結(jié)果為852. 例3:執(zhí)行以下程序,變量a,b,c的值分別是()。 int x=10,y=9; int a,b,C; a=(-x=y+)?-x:+y; b=x+;c=+y; 分析:該題的第3句式個(gè)雙目運(yùn)算符,有4個(gè)自增和自減運(yùn)算,括號(hào)里的-x是前綴形式,因此應(yīng)先將x自減1然后和后面比較,y為后綴形式,應(yīng)先比較然后自增1,兩者是相等的,而這時(shí)的x和y分別為9和10,因?yàn)橄嗟?,所以就這行后面的-x,x的值為8,冒號(hào)后的不執(zhí)行,這是a等于8,下面執(zhí)行的是第4句,x+為后綴形式,應(yīng)當(dāng)先賦值給b,然后再自增1,+y為前綴形式,應(yīng)當(dāng)先自增1,然后再賦值給c,所以本題的值分別為8,8,11。4 結(jié)束語(yǔ) 初學(xué)者往往會(huì)被C語(yǔ)言靈活的運(yùn)算符搞得頭昏,甚至程序?yàn)楹蔚贸鼋Y(jié)果都不理解,所以,多分析、多設(shè)計(jì)是學(xué)習(xí)程序的關(guān)鍵所在。對(duì)于自增和自減運(yùn)算符來(lái)說(shuō),主要掌握它是前綴的形式還是后

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論