看板 Programming 關於我們 聯絡資訊
程式碼如下 int k = 0; if (k = 0 || k == 0) printf("%d\n", k); printf("%d\n", k); 請問為什麼上面這段程式的輸出會是 1 1 呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.86.131.112
vber:因為運算子的優先權 59.104.186.3 05/25 14:27
LPH66:==比||先 ||又比=先 140.112.30.84 05/25 14:36
LPH66:所以變成k==0得1 0||1得1 k=1得1 條件成立 140.112.30.84 05/25 14:36
mosquito520:不應該在if expression作assign的動作220.133.145.202 05/25 16:09
a1234957:沒仔細看研究過優先權,還真不知為何是11218.173.102.182 05/25 16:55
a1234957:不過沒人程式這樣寫吧..218.173.102.182 05/25 16:55
LiloHuang:要在if判斷式中進行assign請愛用括號 140.114.71.40 05/25 16:59
victork:謝謝以上的解答 這題是在網路上找到的 219.86.131.112 05/25 18:57
victork:因為很疑惑 才上來問問 219.86.131.112 05/25 18:58
stonehomelaa:這是故意惡搞的吧 140.115.201.59 05/26 11:48
world9918:真正寫程式也不會有人這樣寫吧.. 220.136.6.51 05/26 21:42