policewj 发表于 2014-10-13 15:21:36

moying 发表于 2014-10-13 15:21:37

赋值运算符的优先级比逗号运算符高,所以先赋值,y和x就都是6了,但是整个式子的值是逗号后面的b+c
如果y=((x=a+b),b+c)这样写的话就是你想的那样的了,y取的就是b+c的值

policewj 发表于 2014-10-13 19:15:02

moying 发表于 2014-10-14 23:55:28

引用一个常见的例子吧
int a=1,b=2,c=3,x;
x=(a=a+1,b=b+a,a+b);此时x==6逗号运算符有优先级最低和左结合性的特点,作用是能让整个式子从左至右全部计算一遍,再把最后一个表达式作为整个表达式的取值

dps521 发表于 2014-10-25 22:13:03

赋值运算符的优先级比逗号运算符高,所以先赋值,y和x就都是6了,但是整个式子的值是逗号后面的b+c
如果y=((x=a+b),b+c)这样写的话就是你想的那样的了,y取的就是b+c的值

大个的糖果 发表于 2014-11-1 06:11:53

页: [1]
查看完整版本: 求助,号运算符和表达式