自增自減運算符

自增自減運算符存在於C/C++/C#/Java/Python等高級語言中,它的作用是在運算結束前(前置自增自減運算符)或後(後置自增自減運算符)將變數的值加(或減)一。

相較於這些語言中的+=和-=運算符,自增運算符更加簡潔,且可以控制效果作用於運算之前還是之後,具有很大的便利性。

基本介紹

  • 中文名:自增自減運算符
  • 外文名:Self-increasing and reduction Operation symbol
  • 支持語言:C/C++/C#/Java/Python
基本語法,實例剖析,特殊情況,

基本語法

自增運算符 ++ 使運算元的值加1,其運算元必須為可變左值(可簡單地理解為變數)。對於自增就是加1這一點,Eric想大家都不會有什麼疑問。
++ 可以置於運算元前面,也可以放在後面,如:
++i;
i++ ;
++i表示,i自增1後再參與其它運算;而i++ 則是i參與運算後,i的值再自增1。
自減運算符--與之類似,只不過是變加為減而已,故不重述。

實例剖析

下面我們通過一些實例來深入理解自增運算符的特性,自減運算符同理自悟
例:
int i=3;
int j=4;
i++;
++j;
printf("%d, %d\n", i, j);
對此,Eric想大家都不會有什麼困惑,結果就是 4,5;下面我們來做一點小改動:
int i=3;
int j=4;
int a = i++;
int b = ++j;
printf("%d, %d\n", a, b);

結果又是多少呢?這裡就開始體現出++前置與後置的區別了,結果是3,5。結合此例,我們回頭再來理解一下“++前置:i自增1後再參與其它運算;++後置:i參與運算後,i的值再自增1”。很明顯,a = i++;由於是先執行賦值運算,再自增,所以結果是a=3,i=4;而b = ++j;
則因先自增,然後再賦值,所以b,j均為5。

特殊情況

在同一條語句中,被操作的數出現多次是可以通過編譯的,但是其在C++ Standard等語言標準中被定義為"Undefined behavior"(不確定的行為),即不同的編譯器或編譯器版本所編譯得到的機器碼可能不盡相同。
不推薦在同一條語句中使被操作的數出現多次,這不僅僅將導致程式的含義難以理解,可讀性大幅降低,同時可能導致不同的編譯器或編譯器版本得到不同的結果。
前置後置區別的舉例
a = i++;
相當於 a = i; i++;
a = ++i;
相當於 i++; a = i;

相關詞條

熱門詞條

聯絡我們