C語言中自增運算子的解析

2021-06-03 19:44:23 字數 713 閱讀 2517

關於c語言中a++, ++a這種自增運算的討論其實很無聊,但是有時候為了應付面試,還不得不細細**一下。

環境:win7,vs2010

例題:寫出判斷abcd四個表示式的是否正確, 若正確, 寫出經過表示式中 a的值(3分)

int a = 4;

(a)a += (a++); (b) a += (++a) ;(c) (a++) += a;(d) (++a) += (a++);

問:a = ?

答:c錯誤,左側不是乙個有效變數,不能賦值,可改為(++a) += a;

改後答案依次為9,10,10,11

分析:a選項 a += (a++);

int _tmain(int argc, _tchar* argv)

b選項 a += (++a) ;

int _tmain(int argc, _tchar* argv)

c選項:(a++) += a;

編譯出錯:error c2106: '+=' : left operand must be l-value。(a++)是乙個表示式,不能賦值。

d選項:(++a) += (a++);

int _tmain(int argc, _tchar* argv)

C C 語言中的自增(自減)運算子

1.為什麼會出現自增運算子?原因 1 可以使 更加簡練。但是,這也會使 的可讀性變差。例如 include void main 2 自增運算子可以使自增運算更加高效。語句i i 1 將會涉及記憶體訪問操作,而i 可以再暫存器中進行,後者的效率當然會比前者高,尤其涉及到迴圈使更是如此。當然這也會帶來一...

C語言的自增自減運算子問題

c語言的自增 自減 運算子對於初學者來說一直都是個難題,甚至很多老手也會產生困惑,最近我在網上看到乙個問題 include void main 主函式 結果是什麼?而後eric搜了一下後發現,類似的問題很多,也就是說對自增自減運算子感到迷惑是乙個普遍存在的問題,基於此,eric決定對自增自減運算子做...

自增運算子 與 自減運算子

字首形式的 操作符出現在運算元的前面。例如 a 說明 運算元的值被相加,而表示式的值就是運算元增加後的值。舉例 int a,b 1 a b b增加至2,a得到的值為2 字尾形式的 操作符出現在運算元的後面。例如 a 說明 運算元的值仍被相加,而表示式的值是運算元增加前的值。舉例 int a,b 1 ...