更多信息:計(jì)算機(jī)等級(jí)考試二級(jí)C語言精編教程匯總
2.7 自加、自減運(yùn)算符和逗號(hào)運(yùn)算符
2.7.1 自加運(yùn)算符“++”和自減運(yùn)算符“--”
(1)自加運(yùn)算符“++”和自減運(yùn)算符“--”的運(yùn)算結(jié)果是使運(yùn)算對象的值增1或減1。如i++,相當(dāng)于i=i+1;i--,相當(dāng)于i=i-1。因此,自加或自減運(yùn)算本身也是一種賦值運(yùn)算。
(2)運(yùn)算符“++”和“--”是單目運(yùn)算符,運(yùn)算對象可以是整型變量也可以是實(shí)型變量,但不能是常量或表達(dá)式。因?yàn)椴荒芙o常量或表達(dá)式賦值。因此,如++3,(i+j)--等都是不合法的。
(3)用自加或自減運(yùn)算符構(gòu)成表達(dá)式時(shí)1既可以前綴形式出現(xiàn),也可以后綴形式出現(xiàn)。例如:++i,--i,i++,i--等都是合法的表達(dá)式。無論是作為前綴運(yùn)算符還是作為后級(jí)運(yùn)算符,對于變量本身來說自增1或自減1都具有相同的效果,但作為表達(dá)式來說卻有著不同的值。
例如,若變量i為int類型,且已有值為5。若表達(dá)式為++i,則先進(jìn)行i增1運(yùn)算,i的值為6,表達(dá)式的值也為6;若表達(dá)式為--i,則先進(jìn)行i減1運(yùn)算,i的值為4,表達(dá)式的值也為4;若表達(dá)式為i++,則表達(dá)式先取i的值為5,然后i進(jìn)行增1運(yùn)算,使i中的值為6;若表達(dá)式為i--,則表達(dá)式先取i的值為5,然后i進(jìn)行減1運(yùn)算,使i中的值為4。
(4)運(yùn)算符“++”和“--”的結(jié)合方向是“自右至左”。
例如有一表達(dá)式-i++,其中i的原值為3。由于負(fù)號(hào)運(yùn)算符與自加運(yùn)算符的優(yōu)先級(jí)相同,結(jié)合方向是“自右至左”,即相當(dāng)于對表達(dá)式-(i++)進(jìn)行運(yùn)算,此時(shí)自加運(yùn)算符“++”為后綴運(yùn)算符,(i++)的值為3,因此-(i++)的值為-3,然后i自增為4。
(5)不要在一個(gè)表達(dá)式中對同一個(gè)變量進(jìn)行多次諸如i++或++i等運(yùn)算,例如寫成:i++*++i+i--*--i,這種表達(dá)式不僅可讀性差,而且不同的編譯系統(tǒng)對這樣的表達(dá)式將做不同的解釋.進(jìn)行不同的處理,因而所得結(jié)果也各不相同。
2.7.2 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式
“,”是C語言提供的一種特殊運(yùn)算符,用逗號(hào)將表達(dá)式連接起來的式子稱為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式為:
表達(dá)式1,表達(dá)式2,……,表達(dá)式n。
說明:
(1)逗號(hào)運(yùn)算符的結(jié)合性為從左到右,因此逗號(hào)表達(dá)式將從左到右進(jìn)行運(yùn)算。即,先計(jì)算表達(dá)式1,然后計(jì)算表達(dá)式2,依次進(jìn)行,最后計(jì)算表達(dá)式n。最后一個(gè)表達(dá)式的值就是此逗號(hào)表達(dá)式的值。例如:(i=3,i++,++i,i+5)這個(gè)逗號(hào)表達(dá)式的值是10,i的值為5。
(2)在所有運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。
編輯推薦:2011年計(jì)算機(jī)等級(jí)考試二級(jí)C語言常見問題匯總
2011計(jì)算機(jī)等級(jí)考試二級(jí)C筆試考綱及備考經(jīng)驗(yàn)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |