
#include<stdio.h> void main() { int x,y,z;x=y=1;z=(++x)+(++y)+(x++);printf("%d,%d,%d\n",x,y,z);}
展开全部
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
原式相当于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
展开全部
自增(自减)运算符使用来自加和自减,
如果运算符在前面,对数先自加或自减,如果在后面则先进行运算,最后在自加,自减。
上面的运算++x首先自己加就为2,y自己加然后等于2,x先进行运算所以2+2+2=6就是z的值 ,最后x再自己加1就是3.
如果运算符在前面,对数先自加或自减,如果在后面则先进行运算,最后在自加,自减。
上面的运算++x首先自己加就为2,y自己加然后等于2,x先进行运算所以2+2+2=6就是z的值 ,最后x再自己加1就是3.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题 只要你搞懂了 先加还是先赋值 就简单了
++在前面是先加后赋值
++在后面是先赋值后加
其实(x++)是先赋值后加的 所以是1
而++x是先算出了y的值才在算的x的值
明白没??
++在前面是先加后赋值
++在后面是先赋值后加
其实(x++)是先赋值后加的 所以是1
而++x是先算出了y的值才在算的x的值
明白没??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想 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
z=(++ x)+(++ y)+(x++) 第一次 ++1 是 先自加再赋值,所以把2赋给表达式, ++y也是 先自加后赋值,也赋了个2个表达式;x++ 是先赋值再自加,注意!由于之前X++ ,所以此时的x的值不是1,是2 ,所以z=2+2+2=6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询