早教吧作业答案频道 -->其他-->
一个++i的小题目希望得到语法解释intj,i=1;j=++i+(++i);printf("%d\n",j);输出结果是6反汇编相关代码如下0040102Fmoveax,dwordptr[ebp-8]00401032addeax,100401035movdwordptr[ebp-8],eax00401038movecx,dwordptr[ebp-8]004
题目详情
一个++i的小题目希望得到语法解释
int j,i=1;
j=++i+(++i);
printf("%d\n",j);
输出结果是6
反汇编相关代码如下
0040102F mov eax,dword ptr [ebp-8]
00401032 add eax,1
00401035 mov dword ptr [ebp-8],eax
00401038 mov ecx,dword ptr [ebp-8]
0040103B add ecx,1
0040103E mov dword ptr [ebp-8],ecx
00401041 mov edx,dword ptr [ebp-8]
00401044 add edx,dword ptr [ebp-8]
00401047 mov dword ptr [ebp-4],edx
根据反汇编代码可以看出 ++i的结果放到了edx中
当他去取 (++i)表达试的时候却是取的 dword ptr [ebp-8]的值
(按理说应该取ecx的值) 但做最后加法的时候dword ptr [ebp-8]的值已经被改变了
我想得到这个题目的语法解释
我感觉应该是 用 3+2=5
输出5的
实际却是输出6
我使用的VC6编译器
我需要的语法解释
int j,i=1;
j=++i+(++i);
printf("%d\n",j);
输出结果是6
反汇编相关代码如下
0040102F mov eax,dword ptr [ebp-8]
00401032 add eax,1
00401035 mov dword ptr [ebp-8],eax
00401038 mov ecx,dword ptr [ebp-8]
0040103B add ecx,1
0040103E mov dword ptr [ebp-8],ecx
00401041 mov edx,dword ptr [ebp-8]
00401044 add edx,dword ptr [ebp-8]
00401047 mov dword ptr [ebp-4],edx
根据反汇编代码可以看出 ++i的结果放到了edx中
当他去取 (++i)表达试的时候却是取的 dword ptr [ebp-8]的值
(按理说应该取ecx的值) 但做最后加法的时候dword ptr [ebp-8]的值已经被改变了
我想得到这个题目的语法解释
我感觉应该是 用 3+2=5
输出5的
实际却是输出6
我使用的VC6编译器
我需要的语法解释
▼优质解答
答案和解析
是先计算了++i的值后再把两个加起来
第一次 ++i=2; i=2;
第二次 ++i=3; i=3;
i+i=6
例如
#include "stdio.h"
#include "iostream.h"
void main()
{
int i=1,j;
j=i+(++i);
cout
第一次 ++i=2; i=2;
第二次 ++i=3; i=3;
i+i=6
例如
#include "stdio.h"
#include "iostream.h"
void main()
{
int i=1,j;
j=i+(++i);
cout
看了 一个++i的小题目希望得到语...的网友还看了以下:
关于可逆反应的平衡问题可逆反应的V正=V逆究竟是什么意思,这里的V是相对同一物质的反应速率而言的吗 2020-04-12 …
高中的物理有关向心力的问题关于质点做匀速圆周运动,下列说法正确的是()A.由a=v^2/r知a与r 2020-04-26 …
关于A(g)+2B(g)═3C(g)的化学反应,下列表示的反应速率最大的是()A.v(A)=0.6 2020-05-20 …
在密闭容器重进行可逆反应,A与B反应生成C,其反应速率分别用V(A).V(B).V(C)(mol/ 2020-05-23 …
某温度下,反应2N2O5=4NO2+O2开始进行时,c(N2O5)=0.0408mol/L.经1m 2020-07-19 …
反应A+3B═2C+2D在四种不同情况下的反应速率分别为:①v(A)=0.15mol/(L•s)② 2020-07-21 …
对于反应A+3B=2C+2D来说,下列四种不同情况下的反应速率最快的是()A.v(A)=0.15m 2020-07-23 …
公式v=s除以t,说法正确的是A:v与s成正比b.v与t成反比,c.v一定时,s与t成正比d.s一定 2020-10-30 …
Q=(V×D)/(10×A)错误应该是Q×A=V×D×10配制及稀释漂白水时应考虑所使用漂白水之有效 2020-11-06 …
关于加速度表达式a=△v△t的下列说法,正确的是()A.△v△t表示速度的变化率,是标量B.加速度a 2020-11-29 …