首页 技术 正文
技术 2022年11月18日
0 收藏 855 点赞 3,772 浏览 461 个字

(j++)+(++j)+(++j)
j++与++j

核心部分汇编代码
j++与++j

执行顺序
j原始值为5,存放在栈的ebp-4中;
q无初始值,存放在栈的ebp-8中
先执行一次j自增赋值++j ;j=6
执行第一个加法运算;值存放在CX中
CX =j+j=6+6=12;
执行第二个 ++j;j=7;
执行第二个加法运算;j=12+7=19;存放到q变量中;
 最后执行j++,即j=8;
最后q输出19,j输出8




(++j)+(++j)+(++j)

j++与++j

核心部分汇编代码

j++与++j

执行顺序
j原始值为5,存放在栈的ebp-4中;
q无初始值,存放在栈的ebp-8中
 
先计算第一个加法两边的表达式;++j和++j
即j自增两次后j=7

然后计算第一个加法CX=7+7=14

然后计算第二个加法;执行第三个++j
j自增后j=8

然后计算第二个加法并存放到q变量中
q=14+8=22;

所以最后输出q=22;j=8

主要是两个规则:
加法自左到右运算,先执行两边的表达式或变量,再取加数
无论是j++和++j,变量始终存放在同一个地址
j++先赋值,使用,在本语句后再自增
++j是先自增赋值,在本语句中使用自增后的值

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,086
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,561
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,410
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,183
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,820
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,903