[問題] C# ++運算子

作者: ts00139161 (Freedom)   2016-08-18 14:30:30
想請教一下
int a = 0;
a=a++;
為什麼顯示出來的a會是0而不會是1呢?
當然我知道直接a++就好
只是今天同事問我我也是覺得莫名其妙為什麼不是1 XD
試了很久一直測不出來原因 特上來請教各位前輩
作者: kyrc (橘子)   2016-08-18 14:55:00
作者: z02852001 (天筑鼠)   2016-08-18 16:13:00
你寫成++a 就會是1了
作者: Litfal (Litfal)   2016-08-18 17:05:00
++寫後面和寫前面的回傳和運算順序不一樣
作者: garyl62327 (garyl62327)   2016-08-19 06:46:00
先看成a=a 之後 右邊的a才++但++完並沒有存回a 如果宣告兩個變數去觀察 就很清楚了
作者: ts00139161 (Freedom)   2016-08-19 13:35:00
謝謝樓上。茅塞頓開啊!
作者: pili100 (zelda)   2016-09-06 11:54:00
雖然早已知道,但複習一下運算子優先順序這兩種寫法的權先權不是都高於=嗎
作者: sedc (走向夢想)   2016-09-06 13:53:00
a++就是a本身+1之後,傳回a在+1之前的值。所以a=a++又把這個傳回值設定到a上了。所以其實用++a比較直覺,也少一個暫存

Links booklink

Contact Us: admin [ a t ] ucptt.com