这个问题都是错的。
这样才算正确。
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=13
c+8这个无意义。没赋值。
++c,这时候c=14
a=3+14=17
a=17 按计算顺序如下:
c+=c++ // c=6+6=12 然后 自加1 等于13
c+8 // 因为是逗号表达式 对c的值没有影响,不用考虑
++c //13+1=14
a = 3+14=17
语法错误,标点敲错了,无法确认。
另外,c+=c++这个表达式就有问题,其结果取决于编译器,不同编译器会执行处不同结果。
你去问问给你出题的人,问他懂不懂C
同理,整天研究
int i=6;
i++ + ++i返回值的都是蛇精病