c語言迴圈語句i 與 i的問題

時間 2021-10-17 05:10:03

1樓:海南特產大全

我知道你有什麼困惑了,我之前學習c語言看譚浩強那本書上就寫的很清楚,但最後,用到for迴圈裡面我就納悶了,該用i++還是++i呢?

其實這兩個都等價於i=i+1,只要在for迴圈裡面,不管是哪一個,在之前加1還是之後加1,運算的結果都是以i=i+1來計算,所以:以下程式就很好理解了!

程式執行順序:

1、先執行i=0,0<=10條件成立,然後執行for迴圈裡面的語句a=a*0,第一次迴圈的結果為a=0,++i=0+1=1

2、【i=0只執行一次】1<=10條件成立,然後執行for迴圈裡面的語句a=0*1,第一次迴圈的結果為a=0,++i=1+1=2

剩下的步驟我就不寫了,以此類推,一直迴圈到i<=10條件不成立就退出迴圈,整個程式就結束,無論怎迴圈,最後的結果都是零。

2樓:匿名使用者

for語句第一次 迴圈是i=0; 然後執行迴圈語句 a=a*i ,所以a=0, 然後++i 執行第二次迴圈,由於a=0, 執行迴圈語句後a還是0, 下面的迴圈一樣, 最終結果是0

3樓:笑年

好簡單啊,開始i不是0嗎,0都參與乘法計算了,結果肯定是0了

4樓:匿名使用者

a的初值你給的是多少?

你看迴圈進去的時候,i的初值為0,a=a*i,那麼a也就等於0了。第二次迴圈進入,a=0,i=1兩個相乘依然為0 後面不管你i怎麼自增,結果依然為0了

5樓:great樂訊

因為i的第一個值是0,這個式子相當於從0一直乘到九,既最終結果是a=0*1*2*3*4*5*6*7*8*9所以是0

c語言中,迴圈語句中的++i 和i++表達的意思一樣不?

6樓:腹劍懸針

c語言中bai,迴圈語句中的++i 和i++表達du的意思都是變數自zhi增1;

單獨是一個語句dao時無區別,專作為賦值表示式的右值時有屬差異:

例子:#include "stdio.h"

void main()

7樓:街角轉身

不一樣,++i 輸出的值是i+1後的值 i++ 輸出結果就是i的值

8樓:波波球

您好,再迴圈體

bai內他們連個是等du價的,僅僅表示自增zhi,但是dao通常使用i++

for(i=1; i<=10; i++)

{}先給 " i " 賦初版

值1, 判斷 " i " 是否

權小於等於10, 若是則執行語句, 之後值增 加1。再重新判斷, 直到條件為假, 即i>10時, 結束迴圈。

9樓:匿名使用者

如果單獨寫成一句,意思沒有區別,都是對i進行+1操作。

但是如果和其他語句組成符合專語句就不一屬樣了,例如,i = 10; a=++i;結果是a=11;而a=i++;結果是a=10;原因就是對於a=++i;由於++在前,所以先對i進行+1操作,所以a=11,而a=i++;++在後,所以先a=i=10然後再對i進行+1操作。

10樓:匿名使用者

不一樣,++i是先加1再賦值

i++則是先賦值,再加1

11樓:卒子的瘋狂

後置++的意思:先運算,後自增

前置++的意思:先自增,後運算

12樓:匿名使用者

++i與i++的區別:

前置操作符將i加1後直接返回i的結果;

後置操作符需要先返回i的值然後進行加1運算;

一般來說,前置操作符的運算工作更少,所以在二者作用基本沒有差別的話,以前者作為首選

13樓:匿名使用者

不一樣的。

++i:

復++在前面制,屬於前置運算,意思就

bai是先進行加法再

du賦值(給等號另zhi一邊的dao值);

i++:++在後面,屬於後置運算,意思就是先賦值再進行加法;

這兩種差異主要表現在賦值運算中。

比如 i=1;a=i++;cout <

i=1;a=++i;cout <

c語言 for(:)迴圈 ++i與i++的區別

14樓:gta小雞

for迴圈第三個表示式++i或者i++效果是一樣的,因為整個表示式只由++i或者i++構成專,最終效果都是

屬i自增1。如果表示式寫成j=i++或者j=++i效果就不一樣了,前者等價於j=i,i=i+1,後者等價於i=i+1,j=i。

c語言的for迴圈的條件語句中 i++; 和 ++i; 有什麼區別?

15樓:々了了

表示式三的位置嗎?

那樣就沒有區別了

不過奉勸lz不要看++i 和i++在printf中得例子,例如 pirntf("%d",++i);

這個例子不恰當,涉及的東西更多,只需明白++的先後就可以了

16樓:匿名使用者

沒區別~

給個有區別的例子

a[i++] = 1

a[++i] = 1

前面相當於 a[i] = 1; i ++;

後面相當於 i ++; a[i] = 1;

17樓:匿名使用者

for迴圈如果後面沒有再用到i沒有區別

真要要說的話++i效率比較高

i++ 相當於 tmp = i, tmp++, i = tmp++i相當於 i = i + 1

18樓:

在迴圈中通常是在迴圈變數更新時用到i++; 或++i; 此時二者用法完全一樣沒有區別;

只有在考試時才會用到二者的真正區別吧。

19樓:匿名使用者

i++是先用i的值,在自增。++i是用i先自增,在使用自增後的值。

20樓:作風格

i++是先加再呼叫,++i是先呼叫再加

21樓:淘氣的峰

i++先執行再加

++i先加在執行

int i=1;

printf("%d",++i); //輸出是2——————————————

int i=1;

printf("%d",i++); //輸出是1

22樓:匿名使用者

for迴圈中確實是沒有區別的(功能實現上)!

23樓:匿名使用者

i++先比較i的值然後++

++i是先++然後比較i的值

c語言中,迴圈語句中的「++i」和「i++」表達的意思一樣嗎?

24樓:腹劍懸針

c語言中,迴圈語句中的++i 和i++表達的意思都是變數自增1;

單獨是一個語句時無區別,作為賦值表示式的右值時有差異:

例子:#include "stdio.h"

void main()

25樓:波波球

您好,再迴圈體內他們連個是等價的,僅僅表示自增,但是通常使用i++

for(i=1; i<=10; i++)

{}先給 " i " 賦初值1, 判斷 " i " 是否小於等於10, 若是則執行語句, 之後值增 加1。再重新判斷, 直到條件為假, 即i>10時, 結束迴圈。

c語言關於i++的問題,是在下次迴圈i加1,還是說遇到i時加1?

26樓:hi漫海

i++的意思是將變數i中的

數值參加運算後,i中的數值自動加一。

「++」符號是程式語言中的自增運算子,作用是在執行後將變數的數值自動加一,「++」符號所處的位置不同,運算規則也不同,當「++」放在變數前方時,如 ++i,此時的作用是先將i變數中的數值進行加一運算,然後再將運算後的數值加入運算,而i++是先將i中的數值加入運算,然後再自加一。

27樓:匿名使用者

一、(i++)*(i++) 這種**,至今我也沒有在應用中見誰寫過,所以沒有必須分析這個!

二、for(j=0;j<4;j++) //這是一個for迴圈語句,括號中是三個步驟,

for( 初始化資料,只做一次; 迴圈條件,每次迴圈前先進行檢查,不成立,則結束迴圈; 迴圈變數變化 ,每次執行完迴圈體中的操作,就跳到這裡,進行迴圈變數改變 ) //三個步驟間以分號分隔

printf("%2d ",*(*(p+i)+j)) ; //迴圈第一次時,j=0 第二次時,j=1 。。。

28樓:匿名使用者

for語句是先執行 j = 0;j<4然後每次執行j<4;j++,第一次不執行j++.

29樓:軍師明眸

首先第一點, i++ 和 ++i 用法是不一樣的;對於 i++ 先使用i的值,然後i再加一

,而對於++i 是先讓i的值加一再用i的值。i-- 和 --i 也是同樣的道理,c語言書上有明確的講解,主要看一下書上給的例子。

其次,對於

for(j=0;j<4;j++)

是一個for迴圈,它執行的順序如下:

首先j的初始值是0,然後執行j<4,0<4成立,所以執行下面的printf函式,最後是執行j++(j的值加一變為二)。 接下來就是迴圈上面的步驟,一直到的值等於4為止停止迴圈。

要多看書,尤其是基礎,必須精讀。希望可以幫助你。

在c語言的for迴圈中,i++和++i有區別嗎,i++是不是意味著先用i的指去做判斷再自身+1?

30樓:育知同創教育

在c語言的for迴圈中,i++和++i沒有區別,最後得到的結果都是一樣的,本質i都會加1

31樓:漆暮昀

++i是先自增後再執行語句,i++是先執行語句再自增。

32樓:今晚不要想我

i++ 是for 迴圈執行一遍後+1 ,++i 是已進入for 迴圈 就+1,

for(int i=0 ;i<1 ;i++)輸出的結果是 0 1

33樓:戶哲茂

沒區別 for(i=0;i<8;i++)

34樓:風鳴神羽

for迴圈是先執行迴圈體再自加的,所以沒區別

c語言中for語句迴圈中表示式3為什麼是i++不是++i啊?

35樓:來生繁景

for迴圈的這個都行,只是習慣性寫i++,大家都預設這種寫法了

36樓:噬血之神

i++和++i都行,沒什麼區別,都是將i逐級遞增

在C 語言中,i 與 i有什麼區別?那i 和 i呢

這種演算法要用例子才能說明的了 比較全面的例子好像這樣 當i 5時,求s i i 和s i i 的值 當i 5時,s i i 13 先算第一個 i 在前面,就把i先加1再把賦值,即先把i變為6然後再得出 i 的值為6,這時i已經變為6了,再計算第二個 i 在前面,也是先把i加1後再賦值,不過這時的i...

本人不才,請指點關於C語言,i 和 i的問題

不能發傳送門怎麼辦 我給你私信過去吧,你給我留個id hi也可以每次看到這題我都斯密達 我解釋一下你帖子裡那個最佳吧 因為 是雙目運算子,要把左右兩邊的值都算出來才能加。先算兩遍 j 此時j為7,然後兩個7相加。然後14再和 j 相加,就是14 8,等於22 但是呢不同編譯器結果就不同,這種題實在沒...

C語言for迴圈的問題,C語言迴圈問題

一個偽 告訴你真相 我是大圈 一圈跑完,大圈還要跑嗎 要跑 繼續大圈與小圈的迴圈,不要跑 跳出迴圈 多層巢狀也是一樣 我是外圈 跑完了小圈,繼續中圈 中圈已結束 跳出中圈繼續執行外圈。中圈還沒結束 繼續中圈的迴圈 現在中圈也跑完了,再來跑大圈 如果大圈跑完了,該迴圈結束,還沒有的話繼續上面的奔跑,r...