1樓:匿名使用者
i++是先賦值後運算
++i是先運算後賦值
—————————————————————下面來看你說的情況
也就是int i = 0;
i = i++;
system.out.println(i);
在第一行
定義了i = 0;
第2行把 i(值為0) 賦值給了i
這個時候還沒有執行++的運算 所以i的值還是0然後執行i+1
這個時候i+1確實等於1 但是 這個值並沒有賦給任何變數第2行在執行的時候是
i = i;
然後 i + 1; 而不是i = i + 1;
所以在第3行的時候
i還是為0
_____________________________________
如果是int i = 0;
i = ++i;
system.out.println(i);
這樣在第2行
++i就是先運算後賦值那麼在賦值號的右邊的值就已經是1了然後賦值給i
這個時候i的值就是1了
2樓:匿名使用者
我之前也遇到過這個問題:注意兩點,1.++的順序。2.賦值的定義。
你已經知道第1點,就是++的順序,就是第2點概念不清楚。複製過程必須是:有等號的,也就是說把等號右邊的賦值給左邊的。
例如,a=b;把b賦值給a。那麼,本題i=i++;可以分解為:i=i,然後i++,可以看出在後一步,沒有「=」,也就是沒有賦值語句,沒有把i++賦值給i,所以i還是第一步的賦值,還是那個i。
3樓:匿名使用者
要知道i++ 是先賦值在運算. ++i是先計算在賦值.
那我們這樣來看i=0;i=i++;
順序應該是
1. i初始值是0
2. i=i 賦值運算. 左邊i是0了吧.
3. 等號右邊i在進行加1.
4.所以左邊的i還是0;
在換個思路.
i=0;
j=i++;
然後你把
i和j分別顯示就知道啦...
4樓:匿名使用者
i=i++是先賦值後加的
5樓:
int i = 0;
int j = i;
j = i;
i = i + 1; //i++是自增
i = j;
6樓:匿名使用者
i++=i+1,i+1賦值為i所以最後i=1
ii和ii 的區別理解,i 和 i命令有什麼區別?
i i和i i 的區別 1 執行時間不同。i先執行i 1,然後執行程式i 先執行程式,然後執行i 1 int i 8 printf d n i 首先執行加法,因此列印輸出為9 printf d n i 2 進行減法的順序不同。首先執行減法,列印輸出為8 printf d n i 首先執行程式。列印輸...
C語言基礎 定義i 5,那麼ii 等於幾?為什麼
來自華夏聯盟 這個答案根據編譯器的不同而不同 所以建議別寫這種自認為很有難度的 顯示自己的水平,寫出無歧義,高精度的 才是真的水平 還有問題可以繼續問我 我告訴樓主,這個結果是不確定的。標準c語言語法只定義了乙個表示式中只有乙個 的計算方法,也就是先用再加和先加再用,對於多個 的情況,並沒有明確規定...
for i 0 i10i 迴圈幾次
10次,因為判斷i 10是在i 迭代以後做的事情,所以前置和後置加加沒有區別 都是10次 i 和 i 僅僅是在使用的時候是取 前值還是 後值你這邊的for迴圈判斷語句執行之前已經做過過 的操作了所以不管是哪個,這個時候i的值都是 後的值了 都是10次 上邊兩個for語句可以這樣理解 第乙個可以認為是...