作者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/cn.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