[问题] 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