在C語言中,使用++i
和i++
什麼區別,應該在for
循環的增量塊中使用哪一個? 函數
請不要擔憂其中哪個更快的「效率」(速度)。 這些天,咱們有負責這些事情的編譯器。 使用任何一種有意義的方法,在此基礎上能夠更清楚地代表您的意圖。 spa
a = i ++表示一個包含當前i值a = ++ i表示一個包含遞增i值code
i++
:在這種狀況下,首先分配值,而後進行遞增。 視頻
++i
:在這種狀況下,首先完成增量,而後分配值 圖片
如下是圖像的可視化效果, 這也是一個演示相同內容的實用視頻 。 get
不久: 編譯器
若是您不在函數中編寫它們, ++i
和i++
工做原理相同。 若是使用諸如function(i++)
或function(++i)
東西,則能夠看到區別。 it
function(++i)
表示首先將i遞增1,而後將該i
放入具備新值的函數中。 io
function(i++)
表示先將i
放入函數中,而後再將i
遞增1。 編譯
int i=4; printf("%d\n",pow(++i,2));//it prints 25 and i is 5 now i=4; printf("%d",pow(i++,2));//it prints 16 i is 5 now
++i
:是前遞增,另外一個是後遞增。
i++
:獲取元素,而後遞增。
++i
:使++i
遞增,而後返回該元素。
例:
int i = 0; printf("i: %d\n", i); printf("i++: %d\n", i++); printf("++i: %d\n", ++i);
輸出:
i: 0 i++: 0 ++i: 2