前置自增與後置自增的區別( i,i )

2021-10-08 05:30:00 字數 553 閱讀 7172

1.  表示式的值不同(這一點想必大多數人都記得)

即++i,i的值自增後,返回i自增後的值; i++,i的值自增,返回的卻是i自增前的值

內部具體操作可以看作是這樣的

/**

前置自增

*//**

後置自增

*/

如上所示,後置自增除了返回值與前置自增不同以外,還多了乙個建立臨時物件的步驟,這也就是為什麼會有前置自增比後置自增更高效的說法,但據說如果只是像i這樣簡單的物件,現在的編譯器都會自動優化,所以兩者不會有什麼區別。

2. 前置自增的表示式是乙個左值,而後置自增表示式是乙個右值。

何謂左值、右值呢,簡單理解就是可以放在賦值號左邊的就是左值,不能放在賦值號左邊的就是右值

據說還有乙個判定方法是其前面可以使用取位址符(&)的就是左值,否則是右值

舉個例子

int i = 6;

++i = 1; //合法, 最終i的值為1

i++ = 1; //非法

後置自增操作符與解引用,前置自增操作符

char a hello char p a int i strlen a while i 0 1 之前一直以為printf c p 這句話是先解引用再將p指標 的,但是我還是太年輕了,不然怎麼會有hello而不是ello呢?2 但是,運算子的優先順序顯示後置自增操作符 優先順序高於解引用 那麼輸出應...

JS基礎語法 03 前自增與後自增區別

前自增與後自增的異同點 相同點 無論是前自增還是後自增,對於變數而言,沒有區別,都是自身 1 不同點 前自增 先 1 變數自身 1 後賦值 將變數的值賦值給自增表示式的結果 後自增 先賦值,後 1 1.前自增 var num1 10 var res1 num1 res1是前自增表示式的結果 cons...

自增與自減運算

自增與自減運算 自增與自減主要有以下兩種作用 1 無論是前置 後置,都是自身變數加1,都是變數減1 2 當作為表示式時,前置和後置就有區別了。前置運算子的結果是加1或減1之後的結果,前置運算子的結果是加1或減1之前的結果。下面通過乙個簡單的程式進行說明 include using namespace...