对于i=i++的理解
2016-03-15 23:50
246 查看
之前我也一直觉着我对于这块应该是狠懂了,i++,++i,一个是先用后加,一个是先加后用。我碰到的语言教程也都这么说,至少c语言和java语言都这么说。我们
一般情况下用也都是a = i++以这种形式去用的,但是直到今天有人这样用i=i++在java中。如果这样写:int i = 0; i = i++;大家知道结果是啥不,是0呐,不管怎么弄都是0。其实这个
跟java的编译器有关。即当为java时,i的值是要被临时拷贝出来的,i的原始值存放在后开辟的内存中,最后这个值将赋值给j,这样j=i++后,j就会得到i的值,而i又将自加,所以,在释放内存之后,原来存放j和i的地方将得到值将是:j(此时的值等于初始i值)和i(i自加后的值)。这样把j换成i就明白了
上图了
一般情况下用也都是a = i++以这种形式去用的,但是直到今天有人这样用i=i++在java中。如果这样写:int i = 0; i = i++;大家知道结果是啥不,是0呐,不管怎么弄都是0。其实这个
跟java的编译器有关。即当为java时,i的值是要被临时拷贝出来的,i的原始值存放在后开辟的内存中,最后这个值将赋值给j,这样j=i++后,j就会得到i的值,而i又将自加,所以,在释放内存之后,原来存放j和i的地方将得到值将是:j(此时的值等于初始i值)和i(i自加后的值)。这样把j换成i就明白了
上图了
相关文章推荐
- 【每周一文】Googles News Personalization:Scalable Online Collaborative Filtering(2007)
- Struts2
- 结构体指针
- 11.TCP的交互数据流
- 10.TCP连接的建立与终止
- 【Android】记今天踩到的一个小坑----Java内存模型
- 在Mac下开发Android,JavaEE的体验
- win10下mysql5.7安装,配置,使用SQLyog工具连接配置。
- 从零开始OGRE
- UIImage渲染模式显示图片本身颜色
- EffectiveJava-7 J避免使用 finalizer方法
- 9.TCP:传输控制协议
- APP测试流程
- Unity Shaders and Effects Cookbook (1-2)创建自定义漫反射光照模型
- 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。
- JSON综合分析
- 【每周一文】Factorization Meets the Neighborhood:a Multifaceted Collaborative Filtering Model
- java mail 发送邮件,并判断是否发送成功
- 8.DNS :域名系统
- 奇思妙想位运算