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

2021-04-28 17:39:55 字數 6026 閱讀 8087

1樓:qt五月

c語言是__cdecl呼叫方式,

copy所以函式bai引數是從右往左入棧,先du壓棧zhi的當然先計算,而在壓棧的過程中後置i++(i--)是不dao會改變i的值的,它只會儲存在一個臨時變數裡面,前置的++i(--i)會直接改變i的值,所以就得到實驗**的結果了!

2樓:砍侃看

看結果是從右往左算的,其實研究這個沒什麼意義。不同的編譯器可能有不同的結果。

3樓:金城杞人

明顯是從右到左計算的

4樓:北望爸爸

x++初始值比++x小

5樓:莫悟軒轅良俊

++i是先加後用,i++是先用後加比如i=1,++i用時i=2了;i++用時i=1,用後才=2

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

6樓:匿名使用者

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。

7樓:手機使用者

++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什麼區別?

8樓:楓璽

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。

9樓:丿染指流年丶丶

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

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

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

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

10樓:匿名使用者

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

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

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

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

11樓:匿名使用者

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

12樓:匿名使用者

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

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

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

13樓:匿名使用者

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

i++與++i的區別是

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

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

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

14樓:匿名使用者

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

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

中國物聯網校企聯盟

15樓:匿名使用者

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

16樓:匿名使用者

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

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

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

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

17樓:匿名使用者

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

18樓:夢之陽

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

19樓:匿名使用者

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

20樓:經沙陳峰

一直以來,++

--語法浪費了太多人的時間。說句實在話,++--在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++有什麼區別?該怎麼記牢?謝了

21樓:匿名使用者

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

i++是用增制1前的i去參與計算,bai參與計算後i再增1;du例子:zhiint i=0;

i++;

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

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

**********

int i=0;

++i;

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

22樓:匿名使用者

如果只是單個的

baii++,或者++i成為一條語句du,則這兩個zhi沒有區別如果dao是賦值內a=++i,a=i++

前者為容先加後賦值,後者為先賦值在自加,假設i=0,那麼第一個就為1,第二個就為0,但在執行完這兩條語句後i的值都是1

分解a=++i;

i++;

a = i;

分解a=i++;

a = i;

i++;

23樓:匿名使用者

如果這來

時候有個整數temp分別等於i++和++i,如自下解釋:

i++;意味著int temp = i; i = i +1;

++i;意味著i = i+1; int temp = i;

分別執行:

(1):

int i=0;

int a = i++;

(2):

int i=0;

int a= ++i;

你會發覺兩次的a的值是不一樣的,這就是區別。

24樓:匿名使用者

總的來說bai:i++與++i最重要的區別在du於:i++先使用後自增如zhi:

這時s的值為0(因為dao先使用i的值來進內行相容加,而i和s的初值都為0所以相加的結果還是為0,而i的值會變為1);而++i則不同,++i是先自增後使用如:int i=0,s=0;s=s+(++i);/*為了使你更好的理解我給++i加了個括號,不加也是可以的*/printf("s=%d,i=%d",s,i);輸出的結果都為1;在進行計算時i自己先加1後再與s相加;所以兩個值都為1;

希望以上的回答對你有所幫助...88

c語言中 i的迷惑

j是14。你說是13,是因為對 i理解的還不透徹。首先int i 5,j 為i,j在記憶體中分別開闢4個位元組的空間 vc中 第一個 i,是這樣實現的。i 1之後變成6,存入記憶體。第二個 i,就變成了7,存入記憶體。而記憶體中i的空間已分配。當前i的值為7.在執行中間 的時候,是從i中取值的。這就...

為什麼forinti0i9i在c語言中是

標準抄c語言這樣 寫會出現語法錯誤的,如果使bai用t20,這樣寫肯定會出du錯,無zhi法編譯,正確的寫法是 在函dao數的開始申明變數,之後再使用變數,比如 void fun 後來很多整合開發環境,是支援for int i 0 i 9 i 這種寫法的,不過我的建議還是按照標準的較好,這樣在任何情...

c語言 內容如下,c語言中 與 的區別

因為如果沒有換行符號,這兩個printf在一行連續輸出 你在printf i am a computer n 加上一個換行符就可以讓這一句單獨一行了 求c語言 設計一個選單程式,包括3項內容如下,1 單日票 2 聯票 0 退出 include include void fun1 void void ...