-
繁华开满天机
逗号表达式从左往右依次计算,其结果是最右边的表达式的值。逗号表达式具有最低优先级。这个问题重点在括号里面的计算过程:首先计算c += c++;c++的值是5,c的值是6,接着c += 5, 所以c的值是11。整个表达式的值是c,即11然后计算c + 8, 结果是19,表达式的值是19最后计算++c,c的值由11变成12,整个表达式的值是c, 即12所以a = 2 + (11, 19, 12)a = 2 + 12 ,a的值是14
-
心有法竹
int c=6;int a;a = 3 + ( c+=c++;c+8;++c);计算是从左到右的。先括号。同时,c++是先执行操作,后+1. ++c是先加1,再执行操作。如果是这样的。则c+=c++;等价于c= c + c++;c= 6 +6+1; 这时候c=13c+8这个无意义。没赋值。++c,这时候c=14a=3+14=17
-
炎炎设计
a=17 按计算顺序如下:c+=c++ // c=6+6=12 然后 自加1 等于13c+8 // 因为是逗号表达式 对c的值没有影响,不用考虑++c //13+1=14a = 3+14=17