ii和ii 的區別理解,i 和 i命令有什麼區別?

時間 2021-09-12 11:20:53

1樓:

++i、--i和i++、i--的區別:

1、執行時間不同。

++ i先執行i +1,然後執行程式i ++先執行程式,然後執行i +1 int i = 8; printf(“%d \ n”,++ i)首先執行加法,因此列印輸出為9 printf(“%d \ n”,-i)。

2、進行減法的順序不同。

首先執行減法,列印輸出為8 printf(“%d \ n”,i ++), 首先執行程式。 列印輸出為8。列印完成後,i為99printf(“%d \ n”,i--)。

3、執行程式的結果不同。

列印後列印為9, 是8 printf(“%d \ n”,-i ++), 如果首先執行程式,則列印輸出為-8。 列印完成後,i為9 printf(“%d \ n”,-i--)。 首先執行程式, 列印輸出為-9,列印後,是8}。

2樓:蟲心菜

i++和++i命令的區別有:

1、賦值順序不同

++ i 是先加後賦值;i ++ 是先賦值後加;++i和i++都是分兩步完成的。

因為++i 是後面一步才賦值的,所以它能夠當作一個變數進行級聯賦值,++i = a =b,即 ++i 是一個左值;i++ 的後面一步是自增,不是左值。

形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。

2、效率不同

比如i=3,b=i++就是說b=3,完成之後讓i變成4,b=++i就是先讓i++變成4,然後b=4,其中++i比i++效率要高些。一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,但是要注意其生存週期,以及i值在程式流中的變化。

3、 i++ 不能作為左值,而++i 可以。

左值是對應記憶體中有確定儲存地址的物件的表示式的值,而右值是所有不是左值的表示式的值。一般來說,左值是可以放到賦值符號左邊的變數。

但能否被賦值不是區分左值與右值的依據。比如,c++的const左值是不可賦值的;而作為臨時物件的右值可能允許被賦值。左值與右值的根本區別在於是否允許取地址&運算子獲得對應的記憶體地址。

比如:int i = 0;

int *p1 = &(++i);//正確

int *p2 = &(i++);//錯誤

++i = 1;//正確

i++ = 1;//錯誤

擴充套件資料

當i=5時,s=(++i)+(++i)和s=(i++)+(i++)的值:

1、當i=5時,s=(++i)+(++i)=13 先算第一個(++i),++在前面,就把i先加1再把賦值,即先把i變為6然後再得出(++i)的值為6,這時i已經變為6了,

再計算第二個(++i),++在前面也是先把i加1後再賦值,不過這時的i已經為6了,第一步的時候把i變成6了的,然後加1的話就變成7了,所以第二個(++i)的值為7,s=(++i)+(++i)=6+7=13。

2、s=(i++)+(i++)=11 先算第一個(i++),i在前面,就先賦值再把i加1,即(i++)的值為5,i的值變為6,第二個(i++),i在前面,先賦值再把i加1,這個時候的i已經為6了,即(i++)的值為6,而i已經變為7了。所以s=(i++)+(i++)=5+6=11。

3樓:鍾離毅君薊瑤

因為i++的意思是i在使用過後+1,座椅執行完第二條語句之後i就變成3了。

++i是在使用前+1,那麼結果就會變成b=3

i=3了。

4樓:蹄子

++i 先執行i+1後執行程式 i++ 先執行程式後執行i+1 int i=8; printf("%d\n",++i);//先執行加法 所以列印出來的是9 printf("%d\n",--i);//先執行減法 列印出來是8 printf("%d\n",i++);//先執行程式 列印出來是8 列印結束後i為9 printf("%d\n",i--);//先執行程式 列印出來是9 列印結束後i為8 printf("%d\n",-i++);//先執行程式 列印出來是-8 列印結束後i為9 printf("%d\n",-i--);//先執行程式 列印出來是-9 列印結束後i為8 }

5樓:匿名使用者

關於自增自減運算,很多書籍沒有把問題講清楚,在c語言裡是這樣的:

1.後置運算:k++表示先運算,後自加。

意思是遇到k++了,我先把當前的k的值拿來參加運算,後面再去管它的自加。

那麼,【“後面”後到什麼程度呢?要後到當前的語句執行完,即遇到分號;表示

語句執行完了,所以k才自加1。】

如:int k=5,b=0;

b=k++;的意思就是,先算b=k(即b=5),遇到分號;表示語句結束,k才自加1,即k變為6。

2.前置運算:++k表示先自加,後運算

這個意思就是遇到++k了,先把k的值加了1,再往後執行別的。

如:int k=5,b=0;

b=++k;的意思就是,先把k自加1,即k為6,再算b=k(即b=6)。

掌握好這兩點,k--和--k也是一樣的道理。

6樓:匿名使用者

++i是在進行運算之前使i自增1,再用增後的值進行運算i++是在進行運算之後才使i增1,使用原值進行運算一次後,再使i自增1

你執行一下這個再體會體會就明白了:

i=1;j=1;k=1;t=1;

m1=i++ + i++;

m2=++j + ++j;

m3=k++ + ++k;

m4=++t + ++t;

(注:自增自減速運算只能對變數進行,常量和表示式不能進行該運算)

誰能詳細的給我講一下i++,++i,i--,--i的區別阿

7樓:八哥說科技

1、運算子型別不同:

i++使用的是後置自增運算子,++i使用的是前置自增運算子,i--使用的是後置自減運算子,--i使用的是前置自減運算子。遞減操作符是“--”,意為“減少一個單位”;遞增操作符是“++”,意為“增加一個單位”。

2、運算規則不同:

++i表示,i自增1後再參與其它運算;而i++ 則是i參與運算後,i的值再自增1。自減運算子--與之類似,只不過是變加為減而已,即--i表示,i自減1後參與其它運算,而i-- 則i參與運算後,i的值再自減1個單位。

8樓:匿名使用者

1.後置運算:i++表示先運算,後自加。

意思是遇到i++了,我先把當前的k的值拿來參加運算,後面再去管它的自加。

那麼,【“後面”後到什麼程度呢?要後到當前的語句執行完,即遇到分號;表示

語句執行完了,所以i才自加1。】

如:int i=5,b=0;

b=i++;的意思就是,先算b=i(即b=5),遇到分號;表示語句結束,i才自加1,即i變為6。

2.前置運算:++i表示先自加,後運算

這個意思就是遇到++i了,先把k的值加了1,再往後執行別的。

如:int i=5,b=0;

b=++i;的意思就是,先把i自加1,即i為6,再算b=i(即b=6)。

掌握好這兩點,i--和--i也是一樣的道理。

9樓:匿名使用者

i++,i--:用了i,再把i重新賦值~假如,i=1;a=i++,那麼現在的a是1,而i值變為了2,如果是a=i--的話,那麼a還是1,但i變成了0;

++i,--i:就是剛好相反,先把i賦了值再用i~假如,i=1;a=++i,那麼現在的a是2,i也是2,要是a=--i的話,現在的a就是0,i也是0;

10樓:

i=5;

b=i++;

執行過後b=5,i=6

i=5;

b=++i;

執行過後b=6,i=6

就是說i++先執行語句,再自增

++i先自增,再執行語句

i--,--i同理

11樓:匿名使用者

對i++,i--,++i,--i的易解,在此舉一例子詳解:

main( )

看懂了吧

12樓:匿名使用者

運算子在前面的先進行運算在自加或自減,在後面的相反。

例如a=1; b=a++,那麼b等於1,a等於2.

如果b=++a;b就等於2 了

13樓:浩劫

具體可以看我的部落格,敲了一些**看上去更詳細一點:++i、i++、i+=1、i=i+1的區別

i++和++i命令有什麼區別?

14樓:蟲心菜

i++和++i命令的區別有:

1、賦值順序不同

++ i 是先加後賦值;i ++ 是先賦值後加;++i和i++都是分兩步完成的。62616964757a686964616fe59b9ee7ad9431333366303839

因為++i 是後面一步才賦值的,所以它能夠當作一個變數進行級聯賦值,++i = a =b,即 ++i 是一個左值;i++ 的後面一步是自增,不是左值。

形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。

2、效率不同

比如i=3,b=i++就是說b=3,完成之後讓i變成4,b=++i就是先讓i++變成4,然後b=4,其中++i比i++效率要高些。一般來說在迴圈域裡面,這兩者並沒有什麼很大的區別,但是要注意其生存週期,以及i值在程式流中的變化。

3、 i++ 不能作為左值,而++i 可以。

左值是對應記憶體中有確定儲存地址的物件的表示式的值,而右值是所有不是左值的表示式的值。一般來說,左值是可以放到賦值符號左邊的變數。

但能否被賦值不是區分左值與右值的依據。比如,c++的const左值是不可賦值的;而作為臨時物件的右值可能允許被賦值。左值與右值的根本區別在於是否允許取地址&運算子獲得對應的記憶體地址。

比如:int i = 0;

int *p1 = &(++i);//正確

int *p2 = &(i++);//錯誤

++i = 1;//正確

i++ = 1;//錯誤

擴充套件資料

當i=5時,s=(++i)+(++i)和s=(i++)+(i++)的值:

1、當i=5時,s=(++i)+(++i)=13 先算第一個(++i),++在前面,就把i先加1再把賦值,即先把i變為6然後再得出(++i)的值為6,這時i已經變為6了,

再計算第二個(++i),++在前面也是先把i加1後再賦值,不過這時的i已經為6了,第一步的時候把i變成6了的,然後加1的話就變成7了,所以第二個(++i)的值為7,s=(++i)+(++i)=6+7=13。

2、s=(i++)+(i++)=11 先算第一個(i++),i在前面,就先賦值再把i加1,即(i++)的值為5,i的值變為6,第二個(i++),i在前面,先賦值再把i加1,這個時候的i已經為6了,即(i++)的值為6,而i已經變為7了。所以s=(i++)+(i++)=5+6=11。

口服補液鹽I和II的區別,口服補液鹽 和ii和i各型的區別

你好,i號方每包由大袋和小袋組成,大袋含葡萄糖11g和氯化鈉1.75g,小袋含氯化鉀0.75g相碳酸氫鈉1.25g ii號方每包含氯化鈉1.75g 枸椽酸鈉1.45g 氯化鉀o.75g和無水葡萄糖10g,為電解質補充藥。適用於需要補充電解質的病人。ors溶液是什麼?口服補液鹽,一般用於拉肚子不太嚴重...

法蘭的A系B系和法蘭的I系II系是什麼意思?他們分別對應不同的標準,還是叫法不一樣,東西一樣

同樣標準,壓力,型式的法蘭a 系列 b系列大多數尺寸 都一樣。區別在於內徑不一樣。a系列是國際標準的管,b系列是國家標準的管。一般b系列的管比a系列的粗一點。然後平焊法蘭的內徑比管外徑大幾公釐,對焊法蘭的內外徑跟標準管一致。所以法蘭分a系列和b系列。形式上有板式平焊法蘭 帶頸平焊法蘭 帶頸對焊法蘭 ...

複數z 1 i 2 i i為虛數單位 的虛部為多少

良駒絕影 複數z a bi,其中a b r,則 複數的實部是a,虛部是b z 1 i 2 i z 1 i 2 i 2 i 2 i z 1 3i 5 z 1 5 3 5 i 實部是1 5,虛部是 3 5 z 1 i 2 i 1 i 2 i 2 i 2 i 1 3 2 3i 1 1 3 i 實部 1 3...