1樓:鍵盤雀躍
永遠別寫這樣的**,根據編譯器實現不同,結果也不盡相同。
最本質的問題是操作順序[不確定]。
對於a來說,做了兩次++操作,不管字首還是字尾,產生兩次***的後果是a=3,這個結果沒有任何問題。
關鍵是b的結果是多少?直接跑下
想看真像,只有看編譯成的彙編**了~
真的分不清先操作誰,後操作誰。為什麼b=(++a)+(++a)是6.··
2樓:
因為相當於如下:
b=a+a;
a=a+1;
a=a+1;
printf("a=%d\n",a);
printf("b=%d\n",b);
3樓:木從它
# include
int main(void)
4樓:匿名使用者
正確的輸出應該是:
a=3b=2
因為a++的值為a,然後a再加1,而++a的值是先加1,即它的值為a+1。
所以b=(a++) + (a++)這個運算,a當時為1,b=1+1=2。當這個運算結束後a再自增,所以a=3
5樓:匿名使用者
b=(a++)+(a++);
b=1+2;//第一個a參加運算時等於1,參加完+1等於2,所以第二個a參加運算時是2,參加運算後a+1等於3,b等於3.
注意:a++先執行再+1,++a先+1再運算。
6樓:vip__尛叮
因為a++的值為a,然後a在加1,在運算b的時候,a的值是不變的,運算b完事了之後a的值才會發生變化。
如果++a的話才是你說的那個情況
7樓:況半蘭
計算的時候先使用a的值然後才進行++操作
8樓:o一直在路上
a++ 執行完再執行+1的
9樓:匿名使用者
b=(++a)+(++a)
b就等於4了
為什麼說文憑不等於知識不等於能力不等於貢獻
文憑只是一個證明,證明你應該具備了你所獲文憑的知識,其實呢?你說你掌握的知識,有證明嗎?你沒有大學畢業證書,那憑什麼說你就具備了大學的知識呢?你沒有高中畢業證書,那又怎麼說你學到了高中必會的知識呢?好好想想吧!知識就是要有一份證明,不然誰相信你有會這個知識,為什麼會計要憑會計證上崗,會做會計不就可以...
為什麼消失不等於,為什麼消失不等於
我更喜歡將其理解為一個哲學性的問題 這就像消失和死亡有什麼不同一樣 消失是把其所有活在在這個世界上的痕跡都抹消掉 而死亡則是單純的生命結束 就像o,就算是空無的,但人們還是將給予了它名稱 最後總結一下我的看法 o雖然是空無的意思,但人們還是將它當做是一個數字 而消失則是連o都沒有 可能表述不是很清楚...
A和B不等於0,A不等於B,A乘B A B再列出一條等式答案是什麼再說明一下原因
貌似只有a b 2才成立,跟你的條件矛盾 也就是說按照你的條件是無解的 是不是進行移項就行啦,這題好像沒法解 已知abc不等於0且a b c b c a c a b,求 a b b c c a abc的值 疑問 a b c是指 a b c還是就是a b c?我解的是後者,如果不是,麻煩你說一下,我再...