c语言,帮我分析一下,感谢

#include<stdio.h>voidmain(){inta=2,b=4,c=6,x,y;y=(x=a+b),(b+c);printf("y=%d,x=%d",y,x... #include <stdio.h>
void main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);
}
看不懂
展开
 我来答
mlper_
2016-05-11 · TA获得超过8016个赞
知道大有可为答主
回答量:4863
采纳率:78%
帮助的人:1167万
展开全部
这里首先定义了a,b,c,x,y五个变量,然后对其进行运算,由于括号表达式的运算优先级最高,赋值运算符优先级次之,逗号运算符优先级最低,所以y=(x=a+b),(b+c);这个语句可以等价理解为先运算(x=a+b),然后运算(b+c),接着运算y=(x=a+b),所以在运算后x为2+4=6,y=6
追问
b+c=10在里面有什么用?我分析结果y应该等于10,为什么y=6?
追答
没什么用,这里只不过是为了展示逗号表达式的运算而已,由于赋值运算语句优先级大于逗号,所以是将逗号表达式里的第一个表达式,即x赋值给y,而不是逗号表达式的最后一个等式赋值给y
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式