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那些 有个临时变量来触发赋值,而不是真正我们看到的赋值,所以就先++再运行我们看到的赋值。
为方便讲解 我把每个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那些 有个临时变量来触发赋值,而不是真正我们看到的赋值,所以就先++再运行我们看到的赋值。
相关文章推荐
- Android关于buildToolVersion与CompileSdkVersion的区别 点击打开链接StackOverFlow中对这个问题进行了详细的讨论:http://stackoverfl
- 关于DBA或SA这个职业的讨论
- 包含so 文件到APK的小技巧 (这个内容不是合理的做法,请查阅我关于NDK 1.6的博文来讨论Google 的推荐做法)
- C语言学习趣事_20_关于数组名与指针的讨论
- 关于DBA或SA这个职业的讨论
- 关于数据建模(面向ER)和领域模型建模(面向OO)在企业应用中的作用的讨论
- 关于ETL过程如何保证数据量的准确性和数据的正确性的讨论
- Problem with svg icon 关于svg图标的问题的讨论---来自Nokia论坛
- 关于继承体系下的操作符重载问题讨论(一)
- 关于IT认证的讨论--证书和能力的统一最重要 推荐
- PAT 1002. 写出这个数 (20)
- 关于JSF和Struts的讨论
- 这个坑,你遇到过吗?关于UIView上添加一个手势,导致子视图为UIButton的无法响应的问题
- 关于sql 关闭资源常用两种方法的讨论
- ASP.net 中关于Session的存储信息及其它方式存储信息的讨论与总结
- 关于OC语法的公开和私有的讨论
- 关于 sessionFacotry.getCurrentsession ,could not obtain transaction-synchronized这个错误的
- 关于awk的学习可以参考这个blog
- 关于九度OJ 1202问题的再讨论
- [PAT乙级]1002. 写出这个数 (20)