#include<stdio.h> void main() { int x,y,z;x=y=1;z=(++x)+(++y)+(x++);printf("%d,%d,%d\n",x,y,z);}

答案为什么是3,2,6的,求教... 答案为什么是3,2,6的,求教 展开
 我来答
优美诗词网
2010-06-24 · 超过10用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:25.8万
展开全部
z=(++x)+(++y)+(x++);
原式相当于z=n1+n2+n3

先执行n1=++x
执行后,x=2,n1=2

再执行n2=++y
执行后,y=2,n2=2

然后是n3=x++
执行后,n3=2,x=3

最后为z=2+2+2
得z=6
花未棉
2010-06-24 · TA获得超过918个赞
知道小有建树答主
回答量:347
采纳率:0%
帮助的人:193万
展开全部
自增(自减)运算符使用来自加和自减,
如果运算符在前面,对数先自加或自减,如果在后面则先进行运算,最后在自加,自减。

上面的运算++x首先自己加就为2,y自己加然后等于2,x先进行运算所以2+2+2=6就是z的值 ,最后x再自己加1就是3.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
开心还惬意灬财宝j
2010-06-24 · 贡献了超过117个回答
知道答主
回答量:117
采纳率:0%
帮助的人:59.9万
展开全部
这个问题 只要你搞懂了 先加还是先赋值 就简单了
++在前面是先加后赋值
++在后面是先赋值后加
其实(x++)是先赋值后加的 所以是1
而++x是先算出了y的值才在算的x的值
明白没??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s07141441
2010-06-24 · 超过20用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:70.6万
展开全部
我想 x y的值 你能理解的吧 x两次自加1+1+1=3 y做了一次自加 值为2

z=(++ x)+(++ y)+(x++) 第一次 ++1 是 先自加再赋值,所以把2赋给表达式, ++y也是 先自加后赋值,也赋了个2个表达式;x++ 是先赋值再自加,注意!由于之前X++ ,所以此时的x的值不是1,是2 ,所以z=2+2+2=6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式