C语言:y = ((x=a+b),(b+c)) 与 y = (x=a+b),(b+c) 所得到的结果为什么会不同

#include<stdio.h>

int main()
{
    
    
int a=2,b=4,c=6,x,y,q,p;
 y = ((x=a+b),(b+c));
 q = (p=a+b),(b+c);
printf ("%d,%d\n",x,y);
printf ("%d,%d\n",p,q);
return 0;
}

在这里插入图片描述
逗号运算符的优先级要低于等于号,
所以在使用逗号运算符的时候外面要加上括号
比如这句话

 q = (p=a+b),(b+c);

他的含义就是
p = a+b;
q = p ;
后面的,(b+c)就相当于作废了

猜你喜欢

转载自blog.csdn.net/helloworld573/article/details/105700590