这是扎回事呢?
#include <stdio.h>void main()
{
int a,b,c,x,y;
a = 2;
b = 4;
c = 6;
y = (x = a + b),(b + c);
printf(" y=%d\n x=%d\n",y,x);
}
答案怎么X,Y都是6,而不是x6,y10. y = (x = a + b),(b + c); 就相当于
y = (x = a + b);
(b + c);
你应该换成
x = a + b, y = b + c; 再加个括号就是x6,y10了。逗号运算符的优先级比赋值运算符低,不加括号就会被拆成y = (x = a + b);b + c;
y = ((x = a + b),(b + c));
页:
[1]