早教吧作业答案频道 -->其他-->
一个++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的小题目希望得到语...的网友还看了以下:
统计学概率一题求解假定每个人的血清中含有肝炎病毒的概率为0.004,混合100个人的血清,求此混合 2020-05-12 …
functionf=myfun(X)f=0.34*X(1)+0.004*X(2)+0.14*X(3 2020-05-21 …
2004年全国垦殖率为( )。A.(13 004+26 329)/96 000×100%=40.97 2020-05-21 …
2004年全国人均耕地面积为( )。A.13 004/129 988=0.1公顷B.13 004+2 2020-05-21 …
2004年全国垦殖率为( )。 A.(13 004+26 329)/96 000×100%=40.9 2020-05-21 …
2004年全国人均耕地面积为( )。 A.13 004/129 988=0.1公顷B.13 004+ 2020-05-21 …
一个++i的小题目希望得到语法解释intj,i=1;j=++i+(++i);printf("%d\ 2020-06-11 …
把4.04、4.404、4.044、4.004、4.40从小到大的顺序是。 2020-07-17 …
直接写4数.7.85×100=65÷1000=8-0.2=2.02×1000=8.5+6=4.04÷ 2020-10-30 …
直接写得数.6.1×0.2=1.5×6=3.9÷3=3.7+0.35=3.4-0.5=4.8÷0.8 2020-11-19 …