1樓:
int main()
while(--y); //這裡y先自減1 再判斷是否為0 所以最終y=0
printf("%d",y--);//這裡y先列印 然後才自減1 所以到這裡列印出的結果為0 但是y已經變為了-1
}至於printf("%d",y); 因為y沒有自減1 所以 列印的結果為0 y也為0
2樓:好嘞啊啊啊啊
#include
int main()
while(--y); // 每次退出迴圈的時候正好是0 如果y是單數的話就死迴圈了
printf("%d",y--); //y--是執行完printf函式後y再減一
}#include
int main()
while(--y); //// 每次退出迴圈的時候正好是0 如果y是單數的話就死迴圈了
printf("%d",y);
}所以兩個程式最後都列印0
但是 第一個最後y=-1;第二個最後等於0
3樓:
都是0就對了。二者都是y==0以後才跳出迴圈,就是執行printf時y都是0。後者無疑,前者是y--,會誤以為輸出-1;實則是y--是所謂「後--「,要等輸出以後才作減1運算,所以輸出0後y才變為-1。
可以這樣驗證,在兩個printf後各加一句printf("%d?",y);,就會發現前者輸出-1?,後者輸出0?……
4樓:行屍那個走肉啊
因為y--是先返回y的值然後再執行自減運算,所以是先輸出y的值然後再減一~~~~
5樓:
是的,但第一個printf函式完了後y是-1,第二個printf函式完了後y是0
6樓:匿名使用者
因為輸出y--,相當於輸出y然後y-1
c語言問題,C語言問題?
include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...
c語言問題,C語言問題?
char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...
C語言問題C語言問題,C語言小問題段錯誤是什麼
str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...