C語言,i 和 i有什麼區別,怎麼用

2021-05-05 20:19:04 字數 6091 閱讀 8660

1樓:璩恨雲赤朗

int i = 5;

int k = 5 - i --;

/*結果得0, i--並不在本行語句執行,只有本行語句執行完後,才真正的執行i-- , 所以本 行語句, i-- 還是5

*/int i = 5;

int k = 5 - --i;

/*結果得1,立刻在本行語句執行--i, --i變成4*/

2樓:塗軒

執行這兩個語句i都變成了i-1。但是i--本身的值依然是i,而--i的值就變成i-1了。

舉個例子

inta,i=5;

a=i--;這時候a=5

i=4a=--i;這時候a=4i=4

3樓:陽晶瑤羊楠

這要看你想要變數i的值,還是表示式的值,如果是要變數i的值,那麼,如果i=1;

i++和++i都會讓變數i自動加1,變成2.

如果你想要表示式的值,那就有所區別了,舉個例子:

如果int

i=1;

那麼表示式i++的值是1(先取i原有值作為表示式的值,而後i自動加1)

而表示式++i的值是2(先讓變數i自動加1,而後的i的值作為整個表示式的值)

4樓:零鴻福鬆甘

二者單獨寫沒有任何區別。

但是如果

i=3;

a=i++;

和a=++i;

就有區別了,前者a=3

後者a=4

5樓:須鵬池五琇

--i和i--都是自減運算子

--i稱為字首運算,i--稱為字尾運算

字首運算後,表示式的值為原變數值減1;

字尾運算後,表示式的值仍為原變數值;

而變數值不論字首運算還是字尾運算都減1。

例如:i=10;

--i的值為原變數值減1,是9;現在的變數i也是9i=10

i--的值為原變數值,是10;而變數i現在就是9

6樓:旁天藍萬曜

意思一樣,只不過你的程式有點問題,第二個程式中if(s1[i]

='\0')

應該為if

(s1[i]==

'\0')

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

7樓:楓璽

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。

8樓:丿染指流年丶丶

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

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

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

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

9樓:匿名使用者

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

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

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

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

10樓:匿名使用者

下面我們通過一些例項來深入理解自增運算子的特性,自減運算子同理自悟例: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。

11樓:匿名使用者

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

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

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

12樓:匿名使用者

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

i++與++i的區別是

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

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

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

13樓:匿名使用者

您好!通俗來講以++為例,++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迴圈

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

中國物聯網校企聯盟

14樓:匿名使用者

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

15樓:匿名使用者

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

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

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

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

16樓:匿名使用者

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

17樓:夢之陽

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

18樓:匿名使用者

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

19樓:經沙陳峰

一直以來,++

--語法浪費了太多人的時間。說句實在話,++--在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語言程式設計中的++i和i++有什麼區別?

20樓:匿名使用者

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。

21樓:手機使用者

++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語言中++i 和i++有啥區別啊?

22樓:寫在楓葉上的故事

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。

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

i 和 i都是c語言裡的自增,但是它們自增的順序不同。i表示,i自增1後再參與其它運算,而i 則是i參與運算後,i的值再自增1。for迴圈裡迴圈變數增值用i 而不用 i是因為在迴圈結構裡需要迴圈變數來結束迴圈,而使用i 則會導致本來應該繼續的迴圈少執行一次,所以迴圈結構裡通常都是迴圈變數在一次迴圈結...

i5 i7有什麼區別,酷睿i7與i5的區別是什麼?

cpu總體來說分為intel和amd i5是雙核處理器,支援超執行緒技術,相對i3主要增加了睿頻技術,可以在不同負載下主頻動態變化已達到較好的節能效果。另外,i5中的高階 5xx 25xx在指令集的支援略有差異,非常適合商業用途。另外,其整合顯示卡的效能更強。i7則複雜一些,有雙核處理器,支援超執行...

i3和i5的處理器有什麼區別???

簡單的說,i5比i3要好一些。i5目前在市面上多為7系列,如i5 750等,i3目前在市面上只有5系列,如i3 530。i5 7系列和i3 5系列還是有比較多的差別。首先是架構已經不同了。i5 7系列是nehalem架構,這個架構是45nm工藝製程的。i3 5系列是westmere架構,這個架構是3...