1樓:開國玩
因為括號使得預算的順序改變,即括號裡的優先順序高先算,n=(++x)+ (++x)中先算第乙個括號,運算完x變成4,再算第二個括號,運算完x變為5,此時變數x的值變為5,無論前者還是後者,兩個5相加結果為10
2樓:永星天恆
先計算兩個++x;得x=5
然後執行n=x+x;得x=10
3樓:
取決於編譯器如何處理, 先算++x沒錯, 問題在於算第二個++x的時候 x是自加前的值還是之後的值
至少在vs2010上 結果是10.. 看相應的彙編**很清楚:
int x = 3;
0041148e mov dword ptr [x],3
int n= (++x) + (++x);
00411495 mov eax,dword ptr [x]
00411498 add eax,1
0041149b mov dword ptr [x],eax
0041149e mov ecx,dword ptr [x]
004114a1 add ecx,1
004114a4 mov dword ptr [x],ecx
004114a7 mov edx,dword ptr [x]
004114aa add edx,dword ptr [x]
004114ad mov dword ptr [n],edx
先取x, 自加, 存回x, 再重複一次, 這時候x = 5.
然後004114aa add edx,dword ptr [x]
執行的相當於 5+ 5
4樓:匿名使用者
第乙個++x後,x值為4,第2個++x後,x值為5,中間再加就是10了。
5樓:匿名使用者
n=(++x)+ (++x);
先++x這時x=4,再++x這時x=5;
再n=x+x
n=10
為什麼c語言總是顯示錯誤警告,為什麼c語言總是顯示一個錯誤0個警告?
gta小雞 這個錯誤是你沒有正確配置vc6的編譯工具路徑,或者你的vc6缺少聯結器程式導致的。最簡單的解決辦法是不要使用vc6.0,這是一個20年前的ide,已經嚴重過時,不相容當前的c c 標準,也不相容windows 7以上的作業系統。換用code blocks或visual studio等現代...
為什麼c語言是程式語言之母,C語言是不是所有程式設計的基礎啊!!
c語言是一門程式語言,但並不是程式語言之母,算是高階語言之母了,很經典 c語言最主要的特點是 簡單易學,通俗易懂 而且,是各種高階語言的基礎,在學其他語言時,你會感覺很熟悉,學著也通俗易懂,可以說,其他變語言是c語言的特殊化罷了 但大部分知識都與c大致相同 這只是一種說法。有人在程式語言中,有兩個高...
c語言為什麼會出現亂碼,為什麼C語言輸出檔案內容亂碼
應該是二次封裝弄的,防止盜用 這個行業一句 一個級別知道一個級別的事 躲藏了很多不為人知的祕密 你們都知道,我們來到地吃苦的目的就是為了能有今天,就是來掙錢的,所以我就要告訴你們,我們上面 的錢是怎麼分的,怎麼拿的,這也是你們非常關心的一個問題.為什麼會有這麼多的人想加入這個行業 1 每個平凡的人都...