VS2019中C 計算結果與VC不一樣

時間 2022-08-09 00:55:15

1樓:匿名使用者

不同的編譯器的結果會不同的,而不同的結果也不能說是誰對誰錯,它們都有自己的解釋,就是說這個加號減號的運算順序是不確定的,注意是運算順序,不是結合順序,比如(++i)+(++i)+(++i),這個式子,你只能根據優先順序的表確定括號裡面的先執行,但是誰都不能確定的告訴你三個式子是哪個先執行,所以有了不同的結果,在c的標準裡面,這個是沒有規定運算順序的,在c的標準裡面,有且僅有四個運算子是規定了運算順序的,注意是運算順序,那就是與&&,或||,逗號運算子,,唯一的三目運算子?:,除了這四個運算子規定是從左到右執行的,剩下的都沒有規定運算順序。

所以不要再追究這個一堆這樣的式子最後得多少了,因為這個根本沒有誰對誰錯,上面是我的理解,希望對你有幫助

這個不能設定的吧,避免這樣的移植性失誤只能在表示式裡面不要用這些表示式了,養成一個好的程式設計習慣

2樓:匿名使用者

編譯器不同結果也不同? 那要標準幹嗎?

vs2005裡的是錯的。知道它的這個bug後以後儘量避免使用類似**。

3樓:匿名使用者

入棧順序的問題 這玩藝有不定的答案 不同的編譯器 不同的平臺能產生五花八門的結果

c語言計算為什麼結果不對,c語言計算結果不對 哪裡有問題?

在double轉換成int時,應當考慮到數值並不準確的問題,可以考慮自己要求的精度極限,比如是0.00000001,可以寫成 printf d n int a pow 10,b 1 0.000000005 這樣可以配合取整實現在那位上的四捨五入。 gta小雞 計算整數的冪,不要使用pow函式,它返回...

vs 2019 如何編譯c語言,vs 2008 如何編譯C語言

1.vc 就可以了 2.應該建立 cpp檔案 3.首先你要建立一個工程,建立一個win32控制檯應用程式的 工程然後再資原始檔檢視裡可以新增 你現成的原始檔4.在工程環境下 可以按f5執行 或是工具欄中間的那個綠色的小箭頭 回答完畢 希望你能明白 奪魂狼劍 不建議你使用vs2008來編譯純c程式。v...

在vs2019中怎麼讓c的dos視窗不關

可以使用系統函式system pause 進行暫停。1 system函式 原型 int system const char command 功能 執行 dos windows系統 或 shell linux unix系統 命令,引數字串command為命令名 說明 在windows系統中,syste...