for迴圈語句中i 可以換成 i嗎 為什麼呢

時間 2025-04-15 16:30:12

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香檳金 玫瑰金的配...