1樓:幽罹焰
可以。。。因為++i和i++都素實現i的自增1操作,區別在於在算式裡的話,++i是先對i自增1再取值,i++是先取值再自增1。。。
如:a = 5 + i++;假設i最開始是1,則語句執行完畢,i變成2,a為6
a = 5 + i;同樣的假設下,執行完畢,i變成2,a卻為7。。。
當然。。如果是在迴圈裡面。。則不需要考慮取值先後的問題了。。。不過如果我沒記錯的話,底層一點考慮,++i的效率稍微高一點,因為實現的語句,++i比i++少一條貌似。。。
2樓:網友
i++ 和 ++i也只是自增的時間不一樣。
int i,sum=0;
for(i=1;i<=100;i++)直到這一段執行後,i就自增1sum=sum+i; /此刻i還是等於1
printf("%d",sum);
int i,sum=0;
for(i=1;i<=100;++i) /這個沒等這一段執行完i已經自己加1了。
sum=sum+i; /此刻i=2了。
printf("%d",sum);
3樓:網友
可以的,++i或者i++都是使得i自增1,
在迴圈語句中,for(i=0;i?
4樓:link專注休閒娛樂
在c++裡,假如i是int,那麼沒有任何不同,無論開不開優化,你沒有使用自增後的i值,編譯器根本就不巨集坦李會「複製」乙個i。
如果i是個自定義型別,又自定義了字首和字尾++操作符,那自然是不一樣的。
如果 i 是系統型別,兩者沒有效能區別。絕大多數編譯器可以生成同效率**。由於所謂的多餘複製的變數並沒有被用到(i++的返回值無人使用),所以編譯器優化之後跟++i等價。
兩者效能區別理論上存在於當 i 是乙個自定義的類,並且這個類過載了++操作符,並且這個類過載「後增量」操作符時使用了值複製作為返回值的情況,在這種情況下,有時編譯器能優化掉多餘的複製,有時不能。
i++的話要先copy出乙個i然後賦值,用原來的i繼續其蔽遲他運算,最後再把copy出來的i做個increment,然後返還給原來的i。
而++i直接在原來的i上做increment。
總結如下:當n很大的時候,信弊++i速度比i++快。
比如語法上a = i++;是等號右邊的變數賦值給左邊的變數,但是賦值應發生在所有運算之後。這就比較矛盾,如果用上訴理論就能解釋得清楚。
for迴圈中的i++何++i沒區別嗎?
5樓:信必鑫服務平臺
for迴圈中的i++和++i是有區別的,區別如下:
i++是先引用i的值再自加,而++i是先讓i自加再引用i的值。本迴圈中i++的輸出值為0 1 2 3 4 5 6 7 8 9,而++i的輸出值為1 2 3 4 5 6 7 8 9,但兩種演算法執行完畢之後,i的值都為10.一般實際應用中,先加在引用顯得更高效。
for迴圈中的變數可以是乙個也可以是多個,不要侷限於乙個變數處理到底,那樣有時會很單調,當程式適合把多個變數組成迴圈時,用多個for語句來表示就是有些浪費了!
for迴圈的累加條件i++ 和 ++i有什麼區別?
6樓:惠企百科
i++是先進行一次迴圈,在進行累加;++i是i先進行一次累加,再迴圈。
兩個對於迴圈的次數都是沒影響的,都是5次,都是當 i 小於5 不成立的時候跳出迴圈,但後面的 i 還是會遞增1的。
兩者不同餘簡的地方在於++i 佔用的空間比 i++ 要小,i++是多定義乙個變數的。看看運算子過載可以豎戚褲知道是怎麼回事。
在for迴圈中,如for(i=0;i<5;i++)與for(i=0;i<5;++i)在for迴圈的仔山次數上沒有區別,都是五次,因為i++和++i都是在for迴圈內的語句執行後才執行!
請問這兩個for迴圈 中 ++i與i++的作用一樣麼?
7樓:四舍**入
示例for迴圈**中++i與i++主要有以下區別:
1、用法不同:++i是先改變i的值即加1後再使用i的值;而i++是先使用i的值在改變它的值即加。
2、for迴圈內部僅形式不同:當i++迴圈和++i迴圈在for迴圈內部,雖然形式上明顯不同,但輸出結果可以一樣。
8樓:矛盾小少年
本題中的++i和i++是一樣的,因為for迴圈中的++i與i++的值都會帶入第一層中去的,即i=m+1。在此我要宣告的是++i是先增加後賦值,i++是先賦值後增加的。但是m+1=5的話,++i=i++的都是6。
所以你的說法是錯誤的。
9樓:網友
這兩個的for迴圈一樣。
i是先加後用 i++是先用後加。
但是你沒有理解for迴圈執行順序。
for(a;b;c)
先執行a,迴圈:判斷b (不滿足退出)
執行c只有涉及到++i 或者i++ 直接賦值或取值的時候它們才有區別,這裡面只是對i增1所以沒有影響。
10樓:網友
for迴圈中的++i和i++執行的效果是一樣的,但是++i的執行時間更短,所以演算法書上一般用的都是++i。
11樓:封禁決
兩個for迴圈是一樣的,其變數i的初始值是一樣的,i++與++i對其沒影響。
c語言迴圈語句i 與 i的問題
海南特產大全 我知道你有什麼困惑了,我之前學習c語言看譚浩強那本書上就寫的很清楚,但最後,用到for迴圈裡面我就納悶了,該用i 還是 i呢?其實這兩個都等價於i i 1,只要在for迴圈裡面,不管是哪一個,在之前加1還是之後加1,運算的結果都是以i i 1來計算,所以 以下程式就很好理解了!程式執行...
for迴圈中的i 何 i沒區別嗎
for迴圈中的i 和 i是有區別的,區別如下 i 是先引用i的值再自加,而 i是先讓i自加再引用i的值。本迴圈中i 的輸出值為0 1 2 3 4 5 6 7 8 9,而 i的輸出值為1 2 3 4 5 6 7 8 9,但兩種演算法執行完畢之後,i的值都為10.一般實際應用中,先加在引用顯得更高效。f...
vivo X9i能換成x9的螢幕嗎
愛上詩意的生活 vivo x9i與vivo x9的螢幕 是一樣的,這兩款機型的螢幕材質都是比較不錯的,不存在可比性,如果您需要更換螢幕,建議您前往當地的售後服務中心更換原裝螢幕。vivo x9i與vivo x9的區別 vivo x9i的顏色為星空灰,除了顏色的區別,與vivo x9香檳金 玫瑰金的配...