字首形式的++操作符出現在運算元的前面。
例如: ++a;
說明: 運算元的值被相加,而表示式的值就是運算元增加後的值。
舉例: int a, b = 1;
a = ++b; //b增加至2,a得到的值為2
字尾形式的++操作符出現在運算元的後面。
例如: a++;
說明: 運算元的值仍被相加,而表示式的值是運算元增加前的值。
舉例: int a, b = 1;
a = b++; //b增加至2,a得到的值為1
顯然,根據操作符的位置,我們很容易記住這個規則:
在運算元之前的操作符(++b)在變數值在被使用之前增加它的值;在運算元之後的操作符(b++)在變數值被使用之後才增加的值。--操作符的工作原理與此相同,只是它所執行的是減值操作而非增值操作。
自增運算子過載
由於字首自增與字尾自增在如果通過運算子過載在形式上相同,都為
以date類為例 date& operator++(date &)(全域性函式)/ date& operator++( )(成員函式)無法區分。
故人為規定字首自增與字尾自增運算子的表達形式:
由於編譯器必須能夠識別出字首自增與字尾自增,故人為規定了用乙個 int 區分,並沒有實際的含義。
字首自增示例
calendar& calendar::operator++()
字尾自增示例
calendar calendar::operator++(int)
自增自減運算子
自增自減運算子 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。在理解和使用上容易...
自增與自減運算子
include int main 注意 無論是a 還是 a都等同於a a 1,在表示式執行完畢後a的值都自增了1,無論是a 還是 a都等同於a a 1,在表示式執行完畢後a的值都自減少1 c程式為邏輯逐行運算,遂值在逐行運算後 不斷在變化,只是區別與輸出與否。自增自減運算 字尾自增 x i x i ...