哪位大神帮俺分析分析啊。。。
#include<stdio.h>
int main()
{
int x=1,y=2,z=3;
x+=y+=z;
printf("%d\n",x<y?y:x);
printf("%d\n",x<y?x++:y++);
printf("%d,%d\n",x,y);
printf("%d\n",z+=x?x++:y++);
printf("%d,%d\n",y,z);
} 帮我分析一下吧,谢谢!!!
[解决办法]
看下求值顺序就好啦,运行一下就知道结果啦~
做为工作好多年好多年的银建议,不用花过多精力在这种问题上面滴,当然,应付考试除外~
[解决办法]
具体是啥?执行一下就知道了。
但要弄明白 += 是怎么回事
建议看看教材中关于 += 的函数实现。
不要把简单的问题复杂化,不要写连自己不明白的代码(当然,有些喜欢捉弄人的所谓权威例外)
[解决办法]
x+=y+=z;
等价于x=x+(y=y+z);
得出x=6,y=5;
x<y?y:x x<y为假 所以打印出x=6;
x<y?x++:y++ x<y为假 打印出y=5,后y加1,y=6;
printf("%d,%d\n",x,y);打印出x=6,y=6;
z+=x?x++:y++ 先计算x?x++;y++ 得出x=6;然后z=z+x;得出z=9,然后x加1,打印出z=9;
最后打印出y=6,z=9;
很简单的,楼主多看看运算符的优先级,注意运算符的求值顺序就可以了!