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