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...