看板 C_Sharp 關於我們 聯絡資訊
想請教一下 int a = 0; a=a++; 為什麼顯示出來的a會是0而不會是1呢? 當然我知道直接a++就好 只是今天同事問我我也是覺得莫名其妙為什麼不是1 XD 試了很久一直測不出來原因 特上來請教各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.71.206.67 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1471501832.A.8B7.html
z02852001: 你寫成++a 就會是1了 08/18 16:13
Litfal: ++寫後面和寫前面的回傳和運算順序不一樣 08/18 17:05
garyl62327: 先看成a=a 之後 右邊的a才++ 08/19 06:46
garyl62327: 但++完並沒有存回a 如果宣告兩個變數去觀察 就很清楚 08/19 06:46
garyl62327: 了 08/19 06:46
ts00139161: 謝謝樓上。茅塞頓開啊! 08/19 13:35
pili100: 雖然早已知道,但複習一下運算子優先順序 09/06 11:54
pili100: 這兩種寫法的權先權不是都高於=嗎 09/06 11:55
sedc: a++就是a本身+1之後,傳回a在+1之前的值。所以a=a++又把這個 09/06 13:53
sedc: 傳回值設定到a上了。所以其實用++a比較直覺,也少一個暫存 09/06 13:54