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

時間 2021-06-12 02:19:16

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語言,為什麼結果出來兩個n不同

真心的小愛 標準c與經典c的比較 本附錄列出了標準c與經典c之間 即kernighan和ritchie合著的the c programming language一書第 1版所描述的語言 的大多數顯著差異。標題指明瞭本書的哪章在討論每個標準c的特性。本附錄沒有介 紹c庫,因為它已經變化很多年了。如果使...

c語言請問下這兩個程式出來的結果為啥不一樣

二個程式都有點問題。第一個程式。你的那個i有二個地方有增加的。一個的i 一個的i i 168,這樣就不能遍歷1 10000裡面的全部情況了。應該在設個變數。比如ii i 168.第二個程式的問題是思路上的漏洞。沒有考慮這個數是負數的情況。c語言程式設計問題。為什麼這兩個程式執行的結果不一樣? 萢萢 ...

這兩個手機買哪個比較好為什麼,這兩個手機買哪個比較好?????為什麼

米8有螢幕指紋,mix3屏佔比高和無線充電。各有優點。但mix3現在得去實體店估計才有貨。米8現在有貨。如果是我,我可能會選米8螢幕指紋版。這兩款手機都非常棒,爆款手機,拍照功能也強大,處理器也用最新的845處理器。系統也好。超級喜歡。 時空緣斌仔 第二個好,記憶體大,科技含量高點,一定比第一個要流...