逗号操作符
逗号操作符,是双目运算符,并且是从左向右,在运算符的优先级是很低的,是最后一级。所以
int i = 2,j = 5;
int k = i++,j+1,j++,++i;// k的值为2,i++
int l = (i++,j+1,j++,++i);// l的值为4,++i
为什么会有这个结果呢?
因为 = 赋值运算符的优先级大于,逗号运算符,所以第一个表达式的结果是i++
而第二个表达式因为有括号,于是是把整个逗号表达式计算完整之后在进行赋值操作,都逗号表达式的返回值是最后一个表达式的值。而在前面 i++ 执行之后,i 的值就为 3 ,在进行 ++i 是返回的值是 4