1樓:樑玉章
在遊戲中就 i++ 我加你 ++i是求人家加。區別在於 應答 與請求
在程式設計中i++和++i最終是一樣的,不過在迴圈體中,i++是先取出i,再加1,++i先加後取
2樓:匿名使用者
++i是先i自加1,然後在使用i的值
i++是先用i的值,在i自加1
比如 #include
main()
a為0,因為i先賦值給a,然後自加1
b為1,因為j先自己1,在賦值給b
i和j都為1
3樓:匿名使用者
++i是先自加1,然後再賦值
i++是先賦值,再加1
4樓:匿名使用者
++i 是i先+1在附直
i++是 i先附值在+1
5樓:
i++ 就是後+1
++i 就是先+1
6樓:泥中弘易雲
i++,是本次迴圈中,i的值為i,下次迴圈中i的值為i+1
++i,是本次迴圈中,i的值為i++,下次迴圈中i的值為i+2
意思是一個是用完後自增1,一個是自增1以後再用。
7樓:鞏雨邵瀾
首先這個你輸入vc後就知道結果了。然後再回頭去想問題。這樣容易理清思路。
q=(++j)+(++j)+(++j)應理解j先自加,自加3次後為8,然後再所有的j相加為24.
8樓:徐微鄧悅
據我所知,這樣的表示式
在不同的編譯器中會得到不同的結果,即在turboc、borland
c、microsoft
c、keil
c等中編譯執行可能會得到不同的結果(我沒有去檢驗,上學時檢驗過類似問題),如果是考試應結合教材所用環境測試並記憶,如果是工程應用,應避免使用這種**。你自己給出的答案在microsoft
visual
studio
2010中是正確的。
9樓:印實乾卯
一直以來,
--語法浪費了太多人的時間。說句實在話,
--在c語言中其實是一個很細節的語法,除了表達簡練外,真的沒有什麼其它的好處了。
由於中國的c語言教程長期以來被譚浩強主宰,而譚又錯誤的把--作為一個c語言重點來教,並增加了一些難點,把本來很簡單的語法,搞得複雜無比!
簡單的來說,i和
i,在單獨使用時,就是
i=i1。而a
=i,相當於
i=i1;a=
i;而a=
i,相當於a=
i;i=i
1;如果實在搞不明白
--怎麼回事,那也不是什麼天塌下來的事。
因為a=
i完全可以寫成i;
a=i。
a=i完全可以寫成
a=i;i。
而且,這也是一種好的程式風格:
--語句如非特殊需要,請單獨一行使用。
10樓:巨集寄江以鬆
樓上的你可以執行一下,q答案是22,不是24
11樓:安三羊舌凝然
i++的意思是
先將i值存在一個臨時變數裡面,接著i
的值加1,最後將儲存在臨時變數裡的、更改前的值返回;而++i的意思是先將
i的值加1,然後返回更改後的i值。
無論是p=(i++)+(i++)+(i++);
還是q=(++j)+(++j)+(++j);
這兩種寫法從語法上說沒有錯,但其實是不規範的寫法,隨不同的編譯環境而計算出來的
p、q值不一樣,
在vc++2008
中,它是這樣計算的:
p=(i++)+(i++)+(i++)
等價於:p=
i+i+
i;i+=3;
//最終p=
15,i=8;
q=(++j)+(++j)+(++j);
等價於:j+=
3;q=j
+j+j;
//最終q=
24,j=
8;在不同的編譯環境中可能會出現不同的值。最好不要在一個表示式中對一個變數的值更改兩次以上,那樣會導致未定義的行為,隨編譯器不同而不同。
12樓:馬貞和浩宕
先加和後加的區別int
i=0;int
j=i++;//後加,即i的值賦
給j之後,i才加1,最後結果是j=0,i=1;i=0;//i重新歸0;int
j=++i;//前加,即i的值賦給j之前i已經加了1,最後結果是j=1,i=1;
13樓:瑞懌悅樓慧
倆者的意思都是
i=i+1;
區別i++(加號在後面)就是i先不自加。就是說你使用i之後i的值+1.(因為++在i後面嘛)。
++i(加號在前面)就是i在沒使用之前就自加。這樣你懂了吧
14樓:幽谷暢想
++i,i=i
i++,i=i+1
15樓:浩劫
從c++ 的角度來看,兩者的效率以及左右值、作用差別都很大,以上答案都只說了作用或者左右值的區別。詳情請看我的部落格++i、i++、i+=1、i=i+1的區別不復制黏貼了
i++和++i命令有什麼區別?
16樓:蟲心菜
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。
17樓:匿名使用者
1、賦值
順序不同抄:
++ i 是先加後賦值;襲++i 是後面一步才bai賦值的,duzhi所以它能夠當作一個變dao量進行級聯賦值,++i = a =b,即 ++i 是一個左值;
i ++ 是先賦值後加;i++ 的後面一步是自增,不是左值。
++i和i++都是分兩步完成的。
2、效率不同:
比如i=3,b=i++就是說b=3,完成之後讓i變成4,b=++i就是先讓i++變成4,然後b=4,其中++i比i++效率要高些。
3、操作完成後,值不同:
對於n=++ i ,進行操作後,n的值發生了改變,其值變成了i+1。
對於n=i++ ,進行操作後,n的值不發生改變,其值仍然為i。
18樓:關鍵他是我孫子
i++和++i命令的區別:
1、i++是先使用i,再賦值計算
,即就是在計算程式時,先把 i 的值拿來用,然後在自回增1。
2、++i是先賦值計算,再使用,答即就是在計算程式時,是想把 i 自增1然後拿來用。
3、 ++i,在位元組碼層面,會先進行iinc,也就是執行自增,然後load變數。
4、 i++,則是,先load變數,後自增(因為已經load,所以本次自增,並不會影響已經load的變數值)。
比如:for(i=0;i<10;i++)
i先使用,用完最後在i++
for(i=0;i<10;++i)
i先自增,然後再用。
19樓:匿名使用者
一直bai以來,++ --語法浪費du了太多人的時間zhi。說句實在話,++ -- 在c語言中其dao
實是一個很細回節的語法,除答了表達簡練外,真的沒有什麼其它的好處了。
由於中國的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++。
而且,這也是一種好的程式風格:++ -- 語句如非特殊需要,請單獨一行使用。
20樓:匿名使用者
第一個是先取i的值,然後再把i加一,第二個是先把i加一,再取i的值
21樓:滾去學習
1、單獨使用時
i++和++i沒有區別,都是自增1
2、進行運算時
i++是 i 先運算在加1
++i是 i 先加1再運算
22樓:難堪
i++ 返回原來的值,++i 返回加1後的值。
23樓:糖糖又笑了
i++是先把i的值拿來用,然後在自增1
++i是想把i自增1然後拿來用
比如:for(i=0;i<10;i++)
i先使用,用完最後在i++
for(i=0;i<10;++i)
i先自增,然後再用
24樓:阿哲
剛好做copy
題到這裡,產生了疑問,現在來把自己的想法寫下來。
i++翻譯一下,就是先運算,後加,
++i翻譯一下,就是先加,再運算,和加號順序相應記。
比如sum+=++i;
就是i=i+1;sum=sum+i;
再比如sum+=i++;
sum=sum+i;i=i+1;
25樓:匿名使用者
後置加加和前置加加
i++ 表示i的值作為表示式的值,然後i自加1++i 表示i先自加1再作為表示式的值
個人覺得還是很有用的,能使程式變得簡潔。
26樓:匿名使用者
i++就是反回
bai(一般來du說)i值i再加1,
++i是i加一
zhi再返回i值.dao
..如下回的話:
int i=0;a=1;
a=a+i++;
cout <<"a="<輸出
答a=1a=3
i和i有什麼區別,i和i有什麼區別啊
i 是先對i操作,再對i執行 1 i是先執行 1,將值賦給i後,再對i操作 比如 int i 1 int a 1 i 執行過程是1 1,然後再將結果2賦給a,最後是i i 1 int a 1 i 執行過程是先執行i i 1,得到2,然後執行1 i,並將結果1 i賦給a i和i 有什麼區別啊?至於 i...
i3 4160和4340區別,i3 4150和4160區別
4340效能更好,主要是 顯示卡效能好,是hd4600,l3快取更大,4m。i3 4150和4160區別 沒多大區別,4160比4150的主頻高了0.1g,此外就沒其他任何區別了,最大的區別在於架構上,i3 4150是老的haswell架構的,i3 4160是新的haswell r架構,如果你的主機...
C語言中的 i和i 的區別,C語言程式設計中的 i和i 有什麼區別?
c語言是 cdecl呼叫方式,copy所以函式bai引數是從右往左入棧,先du壓棧zhi的當然先計算,而在壓棧的過程中後置i i 是不dao會改變i的值的,它只會儲存在一個臨時變數裡面,前置的 i i 會直接改變i的值,所以就得到實驗 的結果了!看結果是從右往左算的,其實研究這個沒什麼意義。不同的編...