逗号表达式的一点问题,y=(a=2,a++);书上的做题过程好像是这样的:先算括号,然后是逗号表达式,逗号表达式是由左往右,就是先算a=2,再算a++,最后a++的值作为逗号表达式的值赋给y,我的问题是先算()能理解,因为优先级高,但里面两个表达式都比逗号表达式的优先级高,所以我感觉应该先算a++,因为自加自减的优先级高于赋值运算符,然后再算a=2最后算逗号表达式,我知道是错的,但我实在无法理解优先级的具体意义,

问题描述:

逗号表达式的一点问题,
y=(a=2,a++);
书上的做题过程好像是这样的:先算括号,然后是逗号表达式,逗号表达式是由左往右,就是先算a=2,再算a++,最后a++的值作为逗号表达式的值赋给y,
我的问题是先算()能理解,因为优先级高,但里面两个表达式都比逗号表达式的优先级高,所以我感觉应该先算a++,因为自加自减的优先级高于赋值运算符,然后再算a=2最后算逗号表达式,我知道是错的,但我实在无法理解优先级的具体意义,

两个表达式包含在逗号表达式中,所以它们得按逗号表达式的运算规则进行运算,
逗号表达式运算次序是自左到右,所以先算a=2,即把2赋予a,然后计算a++最后赋给y,呵呵.