逗号表达式问题?
看图 不明白为什么x=6可以理解 为什么y也等于6 y不是应该等于10 码?例题想告诉我什么 求大家帮我看下 谢谢! 因为赋值运算符的优先级大于逗号的优先级 那天麦子 发表于 2017-2-23 14:28因为赋值运算符的优先级大于逗号的优先级
你的意思就是 此处没有用到 逗号运算逗号只做分隔符出现的 如果运算了不管优先是否那么结果肯定等于10 对吧 ? 上面的是逗号运算符优先级低 赋值运算符,所以先算x=a+b=6赋值给y=6,之后运算b+c=10(结果没有保存),所以x=6,y=6
如果y=((x=a+b),b+c),因为括号优先级高于 赋值 运算符,那么输出的x=6.y=10了 多写,体会一下
#include <stdio.h>
int main()
{
int x1, x2, y1, y2, z2, z1, a = 2, b = 4, c = 6;
x1 = (a+b, b+c);
x2 = a+b, b+c;
y1 = (z1=a+b, b+c);
y2 = (a+b , z2=b+c);
printf("x1 = %d, x2 = %d\ny1 = %d, y2 = %d\nz1 = %d, z2 = %d", x1, x2, y1, y2, z1, z2);
}
页:
[1]