為什麼這兩個C語言程式輸出結果不一樣呢,能仔細講解一下嗎

2021-06-12 02:18:57 字數 772 閱讀 1040

1樓:匿名使用者

第一個是嚴格按照輸出語句從頭到尾輸出的;第二個在呼叫printf函式時,其引數是從右至左進行處理的,即先處理-i++,一直到++i,再從左至右輸出。

2樓:啟航落地

你給的輸出結果是不是寫反了!主要是因為printf()函式是自右往左輸出引數的!

printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);

-i--是先使用i,再進行減操作,所以是-8;

-i++因為i的值一直是8,所以還是輸出-8;

以此類推,得出結果應該是8,7,8,8,-8,-8;

字尾表示式不會改變i的值,你可以進行測試

3樓:匿名使用者

不提到“未定義”和“***”這2個概念是不可能得到這個問題的正確答案的。

你的第二個程式的輸出結果是未定義的,

在不同的環境(包括硬體平臺、作業系統、編譯器)可能有不同的結果,所以不要相信那些確定的解釋,那是不符合c標準的

4樓:

先加減和先呼叫再加減請看譚浩強c語言書p57.

編譯環境不同可能結果也就不同。

printf這個函式的處理方式是逆序編譯順序列印。(不大確定了)

c語言程式設計問題。為什麼這兩個程式執行的結果不一樣?

5樓:萢萢

應該是a=s[i+1]/s[i]+a才等價吧

c語言以下程式執行後輸出結果為

由於default放在前面,所以在執行完default之後需要執行到第一個break才會結束。i 5 n 10 n 10 n 10i 4 n 10 n 100 i 3 n 10 n 10 n 100i 2 n 10 n 1000 i 1 n 0 n 10 n 1000i 0結束。結果n 1000 i...

C語言以下程式的輸出結果是includestdio

三個指標全部指向各自相應的變數等價,所以這個問題你可以這樣解決 第一題的答案是 第二題的答案 c語言 38.填空題 以下程式的輸出結果是 include int fac sum int n 累加到加入bain t n s s f 儲存最近的計算階乘的n值,以及累加n return s 該程式的作用是...

簡單的c語言程式輸出一個簡單的c語言程式輸出1IND00不知道哪裡錯

進行浮點數程式設計時,如果沒有注意,常常會出現輸出類似 1.ind,1.inf 或者 nan,inf 之類奇怪的輸出。這通常隱含了浮點數操作的異常。特殊浮點數的含義 1.inf inf 這個值表示 無窮大 infinity 的縮寫 即超出了計算機可以表示的浮點數的最大範圍 或者說超過了 double...