++與--的困惑
#include <stdio.h>
int main()
{
? ? int i=4;
? ? printf("%d,%d",++i,i++);
? ? return 0;
}
輸出為6,4
#include <stdio.h>
int main()
{
? ? int i=4;
? ? printf("%d,%d",++i,i);
? ? return 0;
}
輸出為5,5
#include <stdio.h>
int main()
{
? ? int i=4;
? ? printf("%d,%d",++i,i--);
? ? return 0;
}
輸出為4,4
誰能告訴我這些是怎么運(yùn)算出來的?
2015-04-14
想知道為什么出這樣的結(jié)果就去看匯編,gcc -S 或 objdump -d。
不過初學(xué)階段你完全不用考慮這么多。就像LS說的,這個(gè)完全是C標(biāo)準(zhǔn)未定義的行為,不同的平臺(tái)可能有不同的結(jié)果。
2015-04-14
。。。。謝謝,那我還是先把這個(gè)放下吧。
2015-04-13
。。。。。。我就是純粹好奇,個(gè)人興趣,學(xué)C語言不搞徹底總感覺不舒服。但還是謝謝你。
2015-04-13
這種問題是不需要理解的。(這是undefined,和編譯器實(shí)現(xiàn)相關(guān)的)
如果你們老師考這種問題,你就直接寫上錯(cuò)誤答案就行了。