計算機C語言中i 和 i有什麼區別?最好能講的淺顯易懂點,謝謝

2021-04-28 17:39:57 字數 6184 閱讀 8221

1樓:匿名使用者

總的來說:i++與來++i最重要的區別在源於:i++先使用

後自增bai如這時s的值為0(因為du先使用zhii的值來進行相加,而i和s的初值dao都為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;

2樓:

i++是先獲取i的值,再對變數i進行加1;

++i是先對變數i進行加1,再獲取i的值。

如:i = 1;

j = i++;//j的值是1,i的值變為2;

k=++i;//i的值變為3,k的值被賦值為3;

3樓:48分通天河

i++ 是先對i取值,再使其自增

++i則先自增再取值。

比如int i = 3, a= 0;

a = i++; // i = 4, a = 3a = ++i; // i =5, a = 5

4樓:純水岸vs岸水純

i++是先把i加一,再把所得值賦給i;而++i是i還是i,把i再加一。

5樓:離攸

i++是先用i,再加一,++i是先加一,再用

6樓:匿名使用者

,得吃薯條代發就讓父

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++是使用後再加1,如果i的初始值是0、輸出i++則為0

++i是使用前加1,如果i的初始值是0、輸出++i則為1

21樓:匿名使用者

前置的++,是變數先自增1,然後再作其他操作,後置的++,是先取變數當前的值操作,然後再自增1你的例子中,i的初始值是1,執行k = ++i;時,先執行了 i = i + 1,也就是i的值變為2,再把i的值賦給k,所以k的值是2,i的值也是2

執行z = i ++;時,先取i的值賦給z,此時i的值是2,所以z也是2,然後再執行i= i + 1,這條語句執行完成後,i的值變為3

22樓:潛素芹田培

i++:(++在後)在程式取用i時,i是原來的值,當該行指令執行完畢時i自動加1

++i:(++在前)在程式取用i時,i先自動加1後再執行該行指令..

23樓:匿名使用者

i++ 和 ++i的基本功能是相同的,都是對變數i進行自增1運算,從功能上講相當於i =i+1 ;

++運算子分為字首++和字尾++,如i++中的++就是字尾運算子,++i中的就是字首運算子,兩個的區別在於:

字首++,先使用變數,再進行變數自增1

字尾++,先進行變數自增1,再使用變數

現在分析你的**:

i=1;

k=++i; //先加,後用,i=i+1=2 k=i=2z=i++; //先用,後加,z=i=2, i=i+1=3輸出 22

24樓:曾德文溥夏

i++是先使用變數的值,後加1;

++i是先自加1,然後使用變數的值。

本例中:

str[j++]=str[i];

相當於:先賦值,後自加。

str[j]=str[i];

j++;

25樓:卿連枝戈雀

區別大啦

++i,i++,a

如果a=

++i;

等價於i=

i+1;a=

i;如果a

=i++;

等價於a=i;

i=i+

1;往往處理這些時,要與編譯器聯絡起來,多個++i相加想見與編譯器有關的

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

26樓:示奕琛問雀

假設i=6;

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

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

27樓:令狐玉枝府培

簡單的來說,++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++。

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

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

28樓:孔桂枝和亥

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

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

如例:#include

void

main(void)

如查是 7 8

c語言中的++i和i++的區別?

29樓:qt五月

c語言是__cdecl呼叫方式,

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

計算機c語言中void f(char pp(charmalloc(10s

不會有任何影響 當然 如果你去掉p char malloc 10 這行就會有影響了 實際上 當你的 指標假定是 p1 傳進來的時候 函式會生成乙個 p 這個p會指向p1指向的位址 此時 改p位址裡的內容 就是改了p1裡的內容但是 經過 再一次對p賦值後 p1和p已經不是指向同乙個位址了 所以 就不會...

c語言中的ER圖是什麼計算機c語言中什麼是ER圖,怎麼畫

e r圖也稱實體 聯絡圖 entity relationship diagram 提供了表示實體型別 屬性和聯絡的方法,用來描述現實世界的概念模型。構成e r圖的基本要素是實體型 屬性和聯絡,其表示方法為 實體型 entity 具有相同屬性的實體具有相同的特徵和性質,用實體名及其屬性名集合來抽象和刻...

c語言和c有什麼區別計算機等級考試二級證書到

c語言和c 的區別你自己搜百科就能找到,很詳細。計算機等級考試二級c,指的是c語言程式設計,不是c 語言,只是c語言程式可以在vc 軟體環境下編寫,但是依然是c語言程式設計。在計算機等級考試二級裡c 語言程式設計是c 程式考試。所以在計算機等級考試裡分別有c語言程式設計和c 語言程式設計,是不同的兩...