C語言迴圈語句中i 和 i有什麼區別

2021-05-06 03:00:36 字數 6423 閱讀 9890

1樓:示奕琛問雀

假設i=6;

那麼i++的值為6,但執行完i++後i的值就變成7了;

++i的值為7,因為++i是這樣執行的:先自增後取值

2樓:令狐玉枝府培

簡單的來說,++i

和i++,在單獨使用時,就是

i=i+1。而a

=++i,相當於

i=i+1;a=

i;而a=

i++,相當於a=

i;i=i+1;

如果實在搞不明白++

--怎麼回事,那也不是什麼天塌下來的事。

因為a=++i完全可以寫成

i++;

a=i。

a=i++完全可以寫成

a=i;

i++。

而且,這也是一種好的程式風格:++

--語句如非特殊需要,請單獨一行使用。

3樓:孔桂枝和亥

i++變數在前,++在後,先使用變數,後自增值。

++i++在前,變數在後,先自增值,再使用變數。

如例:#include

void

main(void)

如查是 7 8

c語言 i++和++i什麼區別?

4樓:楓璽

i++和++i都是c語言裡的自增,但是它們自增的順序不同。++i表示,i自增1後再參與其它運算,而i++ 則是i參與運算後,i的值再自增1。

for迴圈裡迴圈變數增值用i++,而不用++i是因為在迴圈結構裡需要迴圈變數來結束迴圈,而使用i++則會導致本來應該繼續的迴圈少執行一次,所以迴圈結構裡通常都是迴圈變數在一次迴圈結構執行完成之後再自增。

擴充套件資料i++和++i前置後置區別的例子:

1、a = i++;

相當於 a = i; i++;

2、a = ++i;

相當於 i++; a = i;

3、int i=3;

int j=4;

int a = i++;

int b = ++j;

printf("%d, %d\n", a, b);

結果是3,5。++前置:i自增1後再參與其它運算;++後置:

i參與運算後,i的值再自增1」。很明顯,a = i++;由於是先執行賦值運算,再自增,所以結果是a=3,i=4;而b = ++j。

5樓:丿染指流年丶丶

c語言 i++和++i的區別:

1、i++式子值為i原來的值,就是通俗說的「先賦值再加1」;

2、而++i式子值為i變化後的值,也就是「先加1後賦值」。

而在for迴圈中,如果要表示遞增,兩種都可以。

6樓:匿名使用者

對於變數i來說都會在原來基礎上加1的,重點區別於式子本身的值;

1、i++式子值為i原來的值,就是通俗說的「先賦值再加1」;

2、而++i式子值為i變化後的值,也就是「先加1後賦值」;

在for迴圈中,如果要表示遞增,兩種都可以。

7樓:匿名使用者

下面我們通過一些例項來深入理解自增運算子的特性,自減運算子同理自悟例:int i=3;

int j=4;

i++;

++j;

printf("%d, %d\n", i, j);

對此,eric想大家都不會有什麼困惑,結果就是 4,5;下面我們來做一點小改動:

int i=3;

int j=4;

int a = i++;

int b = ++j;

printf("%d, %d\n", a, b);

結果又是多少呢?這裡就開始體現出++前置與後置的區別了,結果是3,5。結合此例,我們回頭再來理解一下「++前置:

i自增1後再參與其它運算;++後置:i參與運算後,i的值再自增1」。很明顯,a = i++;由於是先執行賦值運算,再自增,所以結果是a=3,i=4;而b = ++j;

則因先自增,然後再賦值,所以b,j均為5。

8樓:匿名使用者

i++和++i相同之處是i都自增一,不同是i++表示式的值就是i,因為i++是先賦值後加值

而++i表示式的值是i+1,因為++i是先加後賦值如,i=1,i++表示式為1,++i表示式的值為2,至於你說的for迴圈裡迴圈變數增值 要用i++ 而不用++i ,個人認為從迴圈變數(i)增1考慮,兩者沒有區別,應該要看到完整的程式才能說用哪個

希望這些對你有用!o(∩_∩)o...

9樓:匿名使用者

i++表示遞增不在迴圈中則表示i的值+1;

i++與++i的區別是

i++是先操作後賦值 也就是如果你在此輸出i++;

還是輸出的i的值,便是你在i++;後面再寫一句輸出語句則i的值就變了;

而++i則是先賦值後操作,同理在++i的時候輸出會得i+1的值,在後面輸出也一樣

10樓:匿名使用者

您好!通俗來講以++為例,++a表示先+1後賦值,a++表示先賦值後+1;--則與之相同,-1而已。

比如int a=1;int b=++a;b的值就是2,a的值也是2。如果是int b=a++,則b的值是1,a的值是2。這都是指的區域性變數。--類似

for迴圈裡也可以++i,for迴圈裡的++i沒有賦值順序可言,比如for(int i=0;i<10;++i)也是從0到9迴圈

希望能幫到您!敬請採納!

中國物聯網校企聯盟

11樓:匿名使用者

i++的作用是先對i進行操作再++;

如: int a = 1;

int b = a++; //此時先運算b=a,再a++,故b=1,a=2

int c = --a; //此時先--a,再運算c=a,故c=1,a=1

12樓:匿名使用者

他們主要區別在於:如i=5

++i是先把i的數值增加1,在使用該值如(++i,那麼使用的值就是6,)

i++是先使用該數值,使用後在i的值在+1如(i++,那麼使用的值就是5,但是該句話執行之後i的值依然是6 )

for迴圈裡兩者是一樣的效果

13樓:匿名使用者

錯略低看,++i和i++的作用相當於i=i+1,但是++i和i++的不同之處在於++i喜歡i先執行i=i+1後,在使用i的值,而i++是先使用i的值後再執行i=i+1.

14樓:夢之陽

++i是i先加1 在計算 i++先計算在加+1! i++和++i都可以用只不過初值不同!!不過一般都用i++!!!

15樓:匿名使用者

i++是先運算後自加,而++i是先自加後運算!

16樓:經沙陳峰

一直以來,++

--語法浪費了太多人的時間。說句實在話,++--在c語言中其實是一個很細節的語法,除了表達簡練外,真的沒有什麼其它的好處了。

由於中國的c語言教程長期以來被譚浩強主宰,而譚又錯誤的把++--作為一個c語言重點來教,並增加了一些難點,把本來很簡單的語法,搞得複雜無比!

簡單的來說,++i

和i++,在單獨使用時,就是

i=i+1。而a

=++i,相當於

i=i+1;a=

i;而a=

i++,相當於a=

i;i=i+1;

如果實在搞不明白++

--怎麼回事,那也不是什麼天塌下來的事。

因為a=++i完全可以寫成

i++;

a=i。

a=i++完全可以寫成

a=i;

i++。

而且,這也是一種好的程式風格:++

--語句如非特殊需要,請單獨一行使用。

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

17樓:々了了

表示式三的位置嗎?

那樣就沒有區別了

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

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

18樓:匿名使用者

沒區別~

給個有區別的例子

a[i++] = 1

a[++i] = 1

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

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

19樓:匿名使用者

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

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

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

20樓:

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

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

21樓:匿名使用者

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

22樓:作風格

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

23樓:淘氣的峰

i++先執行再加

++i先加在執行

int i=1;

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

int i=1;

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

24樓:匿名使用者

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

25樓:匿名使用者

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

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

c語言程式設計中的++i和i++有什麼區別?

26樓:匿名使用者

i++和i--的區別:

1、運算方式

i++屬於自增運算,相當於i=i+1;

i--屬於自減運算,相當於i=i-1;

2、值的變化:

假設i=10,分別執行i++、i--後;

i++後:i=i+1=10+1=11;

i--後:i=i-1=9。

擴充套件資料:

無論i++,還是i--,這兩個公式既可以單獨存在,也可以賦值給另外的變數。當賦值引用的時候,他們的含義:

1、i++,先引用i的值,後增加i的值,

如int i=10;

int a=i++;

該程式執行後,a=10,而i=11。

2、i--,先引用i的值,後i的值減1。

如int i=10;

int a=i--;

該程式執行之後,a=10,i=9。

除了以上的用法外,還有一種表示法是++i或者--i,這種表示法i的值也會相應的自增1或者自減1,i的結果和i++與i--是相同的,但是當賦值給另一個變數時,對賦值的變數,結果卻存在差別,因為++i代表先增加,後引用,--i代表先減少,再引用。

例如同樣的程式,i=10,

如果int a=i++,那麼a=10;而int b=++i的話,b=11;

如果int a=i--,那麼a=10;而int b=--i的話,b=9。

27樓:手機使用者

++i在用時是i先自增1,再用這時的i值去參與計算;

i++是用增1前的i去參與計算,參與計算後i再增1;

例子:int i=0;

i++;

printf("%d",i);//這時打出的值為0;

printf("%d",i);//這時打出的值為1,因為i在上個語句中被用過了,本身的值增1

**********

int i=0;

++i;

printf("%d",i);//這時打出的值為1;

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

28樓:gta小雞

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

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

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

29樓:腹劍懸針

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

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

例子:#include "stdio.h"

void main()

C迴圈語句forinti0i5i

5次,從0 5共6個數,但是判斷條件有一個不等於0的條件,因此實際的執行次數為i 1 5,共5次。關於c 中for語句 for int i 0 i 100 i 首先給你介紹下,for 迴圈語句執行的順序。如下 for 設定初始值 執行測試 更新用於測試的值 執行迴圈操作 他們執行的順序是 1.設定初...

c語言for迴圈語句中aij和aji有什麼區別

可以將i 理解成行,baij 理解成du 列,a i j 和a j i 取值不同zhi比如,假設一個3維陣列 dao 你的是5x5 數內值分別為容 1 2 3 4 5 6 7 8 9 迴圈中,當i 0時,a i j 取值為1 2 3,a j i 取值為1 4 7,根據這個來理解結果的不同吧 c語言的...

C語言的for迴圈語句,C語言中迴圈語句有哪些?

呵呵,是可以執行的。for rooster 0 rooster 100 rooster for hen 0 hen 100 hen for chick 0 chick 因為只有到這裡才有分號。用 是在多個分號出現的語句中。for while if 等語言語法中都有 若有多條語句必須用 擴起來 的有效...