首先我們定義乙個變數i,int i=5;
然後我們做執行printf(「%d」,i++);
我們會發現輸出結果是5。
是為什麼呢,我們要搞清楚printf(「%d」,i++);
這句話是做兩件事:
1.輸出i
2.i=i+1;
這裡的順序,是先輸出i,再執行i=i+1;
然後我們初始化變數i,i=5;
然後我們做執行printf(「%d」,++i);
我們會發現輸出結果是6。
其實printf(「%d」,++i);做的也是這兩件事,
1.輸出i
2.i=i+1;
只是先做i=i+1;然後輸出i;
總結:++i;i++;的區別:
i++先做別的事,再自己加1;
++i先自己加1,再做別的事情;
形象的理解,你可以把++i比作自私的人,首先考慮自己的事;
i++是無私的,先為別人照想,這樣方便記憶。
也可以參照函式:i++
function ()
++i為
function ()
總而言之,i++ 語句需要個臨時變數,去儲存返回自增前的值。
不要忽略這個變數的意義,了解過 c 等「低階」語言的朋友,可能會了解變數的內部機制。首先,申請(malloc)一段記憶體空間,然後將值塞(push,壓棧)進去,最後不用了釋放(free)。
i 與 i的區別
public class test static int x,y public static void main string args public static void mymethod 選項 compiletime error prints 1 prints 2 prints 3 print...
i 與 i的區別
今天在寫題的時侯在 i與i 上遇到了麻煩,具體就是我在寫乙個迴圈語句時因為沒有弄清楚i 與 i的區別而導致的錯誤。之前對於i 與 i的使用都只侷限於如下方式 for j 2 j 9 j for j 2 j 9 j 這樣使用好像兩者並沒有什麼區別。然而當我像下面這樣用時卻出了問題 for j i,t ...
關於 i 和 i 的區別
i 和 i 的使用分為兩種情況 1 單獨使用 2 放入表示式中使用。1 第一種情況,單獨使用時從實現的效果 即程式的執行結果 上看是等價的。2 當放入表示式中使用,則有本質區別 b i 字首形式,等價於 i i 1 b i b i 字尾形式,等價於 b i i i 1 i 是先使用後自加,在結束標誌...