黑马程序员技术交流社区

标题: 下面的表达式的值等于多少?怎么算? [打印本页]

作者: linguoqun    时间: 2016-8-3 00:46
标题: 下面的表达式的值等于多少?怎么算?
int a =3;
int res=a+=a-=a;
printf("%d\n",res);
请问解答思路和步骤。

作者: 李江波    时间: 2016-8-3 09:36
答案是0   ,但是程序有警告。。。。。
作者: yezilail    时间: 2016-8-3 10:33

int a =3;
int res=a+=a-=a;

解:
int res = (a+=a)-=a    此时先运算  (a+=a)= a+a  =a=6;
                                 然后再运算  (a-=a)= a-a =a =0;

作者: Chenjunfeng    时间: 2016-8-3 21:00
这题,看着脑壳疼。
作者: linguoqun    时间: 2016-8-4 00:22
Chenjunfeng 发表于 2016-8-3 21:00
这题,看着脑壳疼。

是啊。这题出得真是让人伤脑筋。
作者: anan安    时间: 2016-8-4 22:00

int a =3;
int res=a+=a-=a;
      
printf("%d\n",res);


赋值运算 从右向左边
a-=a    // a = a-a = 0
a是0了
前面有个a+a = 0





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2