i++表示先在表示式中使用i,之後再將i自增,即i = i + 1。
++i表示先將i的值加1,再在表示式中使用i。
舉幾個例子:
①求 i += i++;
#includeusing namespace std;
void main()
{ int i = 4;
i += i++;
cout<<"i = "《分析:
i += i++相當於i = i + i++;
這裡是後置++,因此咱先將i的值拿來用,即i = i + i = 8,但是i還要自增,則i = 8 + 1 =9.
②求 i += ++i;
#includeusing namespace std;
void main()
{ int i = 4;
i += ++i;
cout<<"i = "《分析:
這裡是後置++,因此在計算之前,先將i的值自增1,即i = i + 1 = 5;
i += ++i 相當於i = i +++i,由於我們自增過了,即i = i + i = 5 + 5 = 10.
③求++i += ++i;
#includeusing namespace std;
void main()
{ int i = 4;
++i += ++i;
cout<<"i = "《分析:
++i += ++i相當於++i = (++i) + (++i);
由於右邊表示式中有兩個後++,則計算表示式之前,i = 4 + 1 + 1 = 6;
則原式 = i + i = 6 + 6 = 12.
JVM角度分析i 和 i的區別
最近看jvm的一些相關知識,看到i 和 i的指令執行過程,知道的其實也沒啥難的,不知道的估計也說不出為什麼兩個賦值結果不一樣。跟大夥分享分享我的理解。首先要知道虛擬機器棧是什麼?虛擬機器棧裡都有什麼?此知識點要掌握關於虛擬機器棧中的運算元棧 以下用操作棧代替 和區域性變數表 以下用區域性表代替 還有...
位元組碼指令分析 i 和 i
最近在學jvm,碰到一道分析題,用位元組碼指令分析 i 和 i 的區別,相信大家對 i 和 i 的區別應該非常熟悉,但是具體為什麼會這樣可能還是一知半解,這篇分享和大家共同解惑。非常簡單,這裡就只分析question02了,下面的內容如果不熟悉區域性變數表和運算元棧的可能不太容易理解。public ...
對i 與 i的分析
標籤 c語言 i i by 小威威 1 單獨使用 i 與 i單獨作為乙個語句使用時,即 i i 二者是等價的,並沒有什麼爭議,相當於語句 i 1 2 賦值使用 首先,i 與 i有什麼本質區別呢?i 指先取出i,再進行i 1操作 i指先進行i 1,再取出i。i 與 i賦值使用時,即 a i a i 此...