C語言x 3,為什麼nxx n,C語言x 3 ,為什麼n x x n

時間 2022-03-10 02:15:08

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 每個平凡的人都...