6个回答
展开全部
在C语言中,表达式i++和++i都是将变量i的值+1后,再存入i的意思。如果是单独使用,这两个走达式没什么差别,但如果将其代入到其它算式或语句中,两者是有差异的。i++表示变量 i 先参与算式运算后再+1,而++i 表示i值+1后再参与运算。所以在程序中,被代入的算式会因此而得不同结果。
具体到这个题目,如果单纯按照所写算式的先后顺序考虑,i初值为2,所以k和Ⅰ分别为
k=2+3+3=8
i=3+1+1=5
不过因为这个算式是个连加算式,而加法操作的运算优先级是相同的,而对同伏先级运算,编译软件在生成运行代码时,并不一定是绝对地从左至右运行,考虑到代码生成效率,可能会把相同操作归并到一起。所以在对此题的回答中,有些人指出,不同版本的编译软件运行结果会不同。这样的说法是有道理的。
最后一句,在自己编写程序时,如果不是必须的原因,还是不要这样写了。
具体到这个题目,如果单纯按照所写算式的先后顺序考虑,i初值为2,所以k和Ⅰ分别为
k=2+3+3=8
i=3+1+1=5
不过因为这个算式是个连加算式,而加法操作的运算优先级是相同的,而对同伏先级运算,编译软件在生成运行代码时,并不一定是绝对地从左至右运行,考虑到代码生成效率,可能会把相同操作归并到一起。所以在对此题的回答中,有些人指出,不同版本的编译软件运行结果会不同。这样的说法是有道理的。
最后一句,在自己编写程序时,如果不是必须的原因,还是不要这样写了。
展开全部
没有正确答案可选.
i++表达式值是2,i自增为3;
++i表达式值是4,i自增为4;
i++表达式值是4,i自增为5;
K的值为2+4+4是10,i的值是5.
i++表达式值是2,i自增为3;
++i表达式值是4,i自增为4;
i++表达式值是4,i自增为5;
K的值为2+4+4是10,i的值是5.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C.i=5,k=9
附汇编:
012B3885 mov eax,dword ptr [i] //寄存器eax=i=2
012B3888 add eax,1 //寄存器eax++; ,eax=3
012B388B mov dword ptr [i],eax //i=eax=3
以上三句先处理了++i
012B388E mov ecx,dword ptr [i] //寄存器 ecx=i=3
012B3891 add ecx,dword ptr [i] //ecx += i ecx=6
012B3894 add ecx,dword ptr [i] //ecx += i ecx=9
012B3897 mov dword ptr [k],ecx //k=ecx=9
012B389A mov edx,dword ptr [i] //edx=i=3
012B389D add edx,1 //edx++; edx=4
012B38A0 mov dword ptr [i],edx //i=edx =4
012B38A3 mov eax,dword ptr [i] //eax=i=4
012B38A6 add eax,1 //eax++;eax=5
012B38A9 mov dword ptr [i],eax //i=eax=5
附汇编:
012B3885 mov eax,dword ptr [i] //寄存器eax=i=2
012B3888 add eax,1 //寄存器eax++; ,eax=3
012B388B mov dword ptr [i],eax //i=eax=3
以上三句先处理了++i
012B388E mov ecx,dword ptr [i] //寄存器 ecx=i=3
012B3891 add ecx,dword ptr [i] //ecx += i ecx=6
012B3894 add ecx,dword ptr [i] //ecx += i ecx=9
012B3897 mov dword ptr [k],ecx //k=ecx=9
012B389A mov edx,dword ptr [i] //edx=i=3
012B389D add edx,1 //edx++; edx=4
012B38A0 mov dword ptr [i],edx //i=edx =4
012B38A3 mov eax,dword ptr [i] //eax=i=4
012B38A6 add eax,1 //eax++;eax=5
012B38A9 mov dword ptr [i],eax //i=eax=5
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有正确答案 k=10;i=5;
亲测 望采纳~
亲测 望采纳~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询