您的位置:首页 > 其它

7-20 int j =0;j=j++关于这个的讨论

2011-07-20 11:12 239 查看
这个问题之前在班上讨论过了,现在根据一些资料写一些过程看看。

为方便讲解 我把每个J赋名字。

j(A)=j(B)++;

c++的是这样做的,其实JA和JB都是指向一开始定义那个J,他是直接赋值,这时候的JB=0,先赋值。所以这时候JA=0,然后共同指向那个J的存储空间再++,所以j=1;

而java和.net的机制估计是用一个临时变量来存,先把JB的值存在一个变量VAR里面,然后这里取了JB的值,就触发了++事件,所以现在J变成了1!然后再将var赋值回去!所以J又变成了0,最后释放掉var。

这个。。说得有点纠结。应该就是这样的了。反正一句话。

++是在这个值拿走并且运算以后触发,所以c++的一赋值就触发

而java那些 有个临时变量来触发赋值,而不是真正我们看到的赋值,所以就先++再运行我们看到的赋值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: