C語言輸出求解釋

2022-05-18 20:48:30 字數 631 閱讀 4528

1樓:匿名使用者

在c語言中,有很多寫法都是未定義行為,比如這種將同一個變數的++放到一個表示式中,就是未定義行為。

未定義行為的含義是,c語言標準沒有強制要求必須如何實現,從而導致了可能不同的編譯器有不同的行為,或者不同的平臺有不同的行為,或者不同的執行時環境有不同的行為。這就使得這種**很被動,是應該避免這樣寫的。

就這段**來說,這些i的表示式和++,--的計算順序是未定義的,可能先都把i取出來作為引數,然後再計算++--,然後呼叫函式,也可能依次計算再傳給函式呼叫。

2樓:

別糾結這個,知道怎麼回事就行了;也別這樣寫**,因為不同的編譯器會有不同的解釋,造成輸出不是希望的就很難堪;很多教科書和高明的導師們都諄諄教導不要寫這樣的邊緣化語句,只有那些「半瓶水」才經常以此來為難學子!我知道vc++6.0的編譯器是怎麼解釋的,它輸出肯定是2 2 1 1,而不是你提供的1 2 1 2!

你的編譯器怎麼解釋我沒有「猜」出來,不好意思。

3樓:匿名使用者

這種加加減減的只有那些寫系統的人才會用這些奇葩的用法。。。

4樓:匿名使用者

好吧,本來想好好解釋的。。。

你確定是輸出這個?

求解釋這個C語言程式,謝謝,求解釋c語言這道題,看不懂程式,解釋一下過程謝謝

o i q n x i 迴圈取p陣列裡第襲x元素到bai陣列最後一個du元素到新的o陣列中其中 q n 指向最後一個元素 zhiq n x 指向要求移動dao的若干元素的第一個位置 一共x個元素要移動 q n x i i迴圈來取x個需要移動的元素for p p n 1 p q p p p x 迴圈,...

PPMI求解釋,C語言問題 求解釋

原始分f詐病量表 21 果斷懶得分析了 親,您繚亂了嗎。沒有給分的 問題 很少有人給回答的 而且你這個也是專業術語 哥只懂一點 加分給解 c語言問題 求解釋 這個scanf函式是用來讀取變數的值得。在c語言當中,float型別的值讀入的時候應該是使用的 f,輸出的時候用的也是f,也就是說,float...

c語言。金字塔,求解釋,C語言。金字塔 ,求解釋。

列印一行5顆星你會不?for i 1 i 5 i 迴圈列印5顆星列印下面這張圖你會不?5行5顆星 就是在上面的基礎上在來一個迴圈for j 1 j 5 j 外層迴圈for i 1 i 5 i 迴圈列印5顆星printf n 現在說你的圖 就是你給的那個,我不重複了。至於裡面的數量關係的規律,你可以從...