C语言 设int c=6 int a,a=3+(c+=c++,c+8,++c) a的值是多少

麻烦写过程
2024-11-22 18:40:11
推荐回答(3个)
回答(1):

这个问题都是错的。
这样才算正确。
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

回答(2):

a=17 按计算顺序如下:

  1. c+=c++     // c=6+6=12 然后 自加1 等于13

  2. c+8 // 因为是逗号表达式  对c的值没有影响,不用考虑

  3. ++c        //13+1=14

  4. a = 3+14=17

回答(3):

语法错误,标点敲错了,无法确认。
另外,c+=c++这个表达式就有问题,其结果取决于编译器,不同编译器会执行处不同结果。
你去问问给你出题的人,问他懂不懂C

同理,整天研究
int i=6;
i++ + ++i返回值的都是蛇精病