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

2021-06-07 20:33:35 字數 647 閱讀 5885

1.為什麼會出現自增運算子?

原因:(1)可以使**更加簡練。但是,這也會使**的可讀性變差。例如:

#include

void main()

(2)自增運算子可以使自增運算更加高效。語句i = i +1;將會涉及記憶體訪問操作,而i++可以再暫存器中進行,後者的效率當然會比前者高,尤其涉及到迴圈使更是如此。

當然這也會帶來一些***。因為不同編譯器對自增運算子的解釋是有差別的,從而導致同一條語句在不同的編譯環境下產生不同的結果。例如:

int i = 4;   

int a = (++i) + (++i) + (++i);  

三個不同的編譯環境的結果:

visual c++ 6.0 sp6    :a = 19   

visual studio 2005      :a = 21   

gcc.exe (gcc) 3.4.5 (mingw-vista special)    :    a = 19  

這樣就產生了矛盾:如果平衡程式的可讀性和高效性?

1.在程式中,我們應當避免出現前自增和後自增混用的情況,即遮蔽前自增和後自增的差別;

2.不要再乙個複雜的表示式中過多使用自增運算子,否則會大大減弱程式的可讀性,而且也會使編譯結果與編譯器有關從而不可移植;

自增自減運算子

自增自減運算子 i 先使用i,然後i i 1 i 先使用i,然後i i 1 i 先i i 1然後使用i i 先i i 1 然後使用i 以下使用vc下除錯的結果,不同的編譯器可能有不同的結果。i 3 例1printf d i 結果輸出4 例2printf d i 結果輸出3 例3printf resu...

自增 ,自減 運算子

自增1運算子記為 其功能是使變數的值自增1。自減1運算子記為 其功能是使變數值自減1。自增1,自減1運算子均為單目運算,都具有右結合性。可有以下幾種形式 i i自增1後再參與其它運算。i i自減1後再參與其它運算。i i參與運算後,i的值再自增1。i i參與運算後,i的值再自減1。在理解和使用上容易...

自增和自減運算子

自增和自減運算子 在c語言中有許多運算子,邏輯運算,賦值運算,關係運算 其中最難理解的莫過於自增 和自減 運算了。自增 自減 有兩種方式,下面分別進行分析。1 在前。i i 其用法是在整個表示式運算之前先進行自增 自減 運算,然後再進行表示式運算。例如進行如下計算 intx y x 8 y x 執行...