这个表达式中为什么Y的值是6不是10

来源:百度知道 编辑:UC知道 时间:2024/05/30 20:53:07
main(){

int a=2,b=4,c=6,x,y;

y=(x=a+b),(b+c);

printf("y=%d,x=%d",y,x);

}

逗号表达式是就近原则,就是离等号最近的那个,不是左边的
比如说int i,j=9;这个时候i,j就是用了逗号表达式,可是只给j赋值了9,i并没有赋值,所以逗号表达式是就近原则
所以这等价于y=(x=a+b)
也就是
x=a+b;
y=x;

逗号表达式的值是左边部分的值

y=(x=a+b),(b+c);
所以y的值是 (x=a+b)
是 6

y=(x=a+b),(b+c);是逗号表达式
y=(b+c)=10
x=a+b=6
输出 y x
即输出
10
6

x=6
y=2