c語言小程式,求解釋答疑解惑,造福人類

2022-06-09 09:17:48 字數 571 閱讀 8194

1樓:匿名使用者

說明編譯器是從表示式右往左進行計算的。可以很負責任的告訴你,如果是自己學c來用,完全不要鑽類似的牛角尖,這是跟編譯器有關的,可能微軟的vc是這個結果,keil的c又是另外一個結果,brolandc又不一樣。所以如此的節省筆墨一來帶來邏輯上的混亂,程式大的話找這種錯誤非常麻煩。

這種東西我感覺就是老師無聊沒事折騰學生用的怪題(學編譯原理的除外)。。。

2樓:

i = (int)a[ptr] + a[++ptr]; //這個語句有二義性,在不同的編譯系統下,結果不相同。樓主沒有必要深究。程式設計不要寫這種不確定的語句,考試就更不會考了。

3樓:小何才露尖尖角兒

我的vc6.0環境裡執行兩次都是32.這可能取決於編譯器,而你的如果是結果是22的話,可能是+運算先計算右邊的值後運算左邊的值。

取決於編譯器。因為你無法知道+運算,編譯器是先計算左邊,還是計算右邊,這可能取決於編譯器,所以,不要寫出取決於編譯器的**。

4樓:匿名使用者

可加q群:186394662

C語言,幫我解釋下這個小程式

scanf在遇到空格時就結束了,所以你輸入的how are you其實只有how被讀進去了。所以長度就是3了。你之前用memset函式的時候,就把a 3 置成0了,然後你輸入的又只有how被讀入,所以此時a 3 還是0嘛。空格是不是就結束了?因為從鍵盤輸入時,scanf遇到空格就認為輸入結束了,所以...

c語言小程式的問題,c語言程式問題

注意標記符號所作用的程式域!其他的都是一些小問題,自己慢慢除錯這執行,相信你能執行成功的。c語言程式問題 c語言中只有傳遞值的一種方式,即使傳遞的是指標,還是指標的值,因此雖然p加了3,但是與pt無關,如果要修改指標形參,則要使用二重指標 include point char pt main pt ...

c語言急求解釋

include int main 求兩個dao數中的較大者的max函式專int max int x,int y 修改的屬地方 1 scanf 輸入四個整數 d d d d a,b,c,d 裡面的輸入四個整數要去掉,這個是標準輸入函式,不具有輸出功能,要是想輸出這樣的提示就在上面加printf 2 i...