a++ 与++a在内存中的正确姿势
来源:互联网 发布:cmd查询数据库 编辑:程序博客网 时间:2024/06/11 23:22
我们平时解释b=a++与b=++a是这样解释的:
b=a++是先把a的值赋给b,然后a自加1;
b=++a是a先自加1,在把值赋给b。
那么如果a=3:
b=a++计算后b=3,a=4;
b=++a计算后b=4,a=4;
验证一下确实如此:
接下来我们分析一下a=a++;的值,先赋值a=3,再自加a=4;所以a最后的结果应该是4,所以我们验证一下:
结果却是a=3,为什么呢,其实我们之前所说的先赋值再自加并不准确,我们都知道赋值运算是最后计算的,先计算等号右边的值,最后再赋值。
在内存中a=a++的运算是这样的,在a做加法运算之前,先开辟一片临时区域保存a的值,然后a再做自加运算,a做完自加运算之后,载把临时区域的值赋值给等号左边的变量即a,a=a++相当于:
temp=a;//temp=3
a=a+1;//a=4
a=temp;//a=3
所以a最后的值是3。
(*^__^*) ——END
2 0
- a++ 与++a在内存中的正确姿势
- float a=1.0f在内存中的表示
- 由(int&)a引发的思考及浮点数在内存中的表示
- 由(int&)a引发的思考及浮点数在内存中的表示
- 类型转换:浮点数在内存中的存储方式以及(int&)a的意义
- 对 int a=2;在内存存储的理解!
- Input标签中包a标签正确姿势
- 全局变量与局部变量在内存中的区别
- short与int型在内存中的存储形式
- 值类型与引用类型及在内存中的存储
- 全局变量与局部变量在内存中的区别详细解析
- 全局变量与局部变量在内存中的区别详细解析
- 类与对象在内存中的分布情况
- 全局变量与局部变量在内存中的区别
- C数组与java数组在内存中的区别
- 进程在内存中的影像
- 类在内存中的结构
- float在内存中的方式
- VC++6.0简单注释多行代码的快捷键
- flume 学习总结
- 多重继承
- Androidstudio导入GitHub项目报错问题记录
- 音频涉及的相关概念
- a++ 与++a在内存中的正确姿势
- nc 的缺点
- SSM杰信商务平台项目day08
- 利用OpenCV进行图像匹配
- LeetCode 445. Add Two Numbers II
- Oil Deposits HDU
- Linux内核学习总结
- QT调用编辑caffe c++ API
- poj 2155 Matrix