C语言 main() { int a=9; a+=a-=a+a; printf(“%d\n”,a); }得多少?为什么?

 我来答
超绝至精
高粉答主

推荐于2019-09-19 · 关注我不会让你失望
知道答主
回答量:15
采纳率:100%
帮助的人:1.9万
展开全部

1、C语言 main() { int a=9; a+=a-=a+a; printf(“%d\n”,a); }最后结果就是-18;

2、赋值语句,从右到左依次运行:那么:int a=9;a+=a-=a+a;

3、相当于:a-=a+a;a+=a;然后相当于:a=a-(a+a);a=a+a;

4、由于a初始化为9:a=a-(a+a)=-a=-9;a=a+a=-9+(-9)==-18;所以最后结果就是-18。

5、a+=(a-=a+a) 首先计算a-=a+a,因为赋值运算符的优先级小于算术运算符故先算a+a;

6、 得出a-=18;此刻a的值还是9,计算a-=18得出a=-9;

7、a+=-9,计算得出a=a+(-9) a=(-9)+(-9) 所以最后a=-18。

扩展资料:

C语言基本特性

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 [11] 

2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;

4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。

5、C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,

参考资料来源:百度百科:C语言

百度网友6fe74e2
推荐于2018-02-27 · TA获得超过6592个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:228万
展开全部

赋值语句,从右到左依次运行:

那么:

int a=9;

a+=a-=a+a;

相当于:

a-=a+a;

a+=a;

然后相当于:

a=a-(a+a);

a=a+a;

由于a初始化为9:

a=a-(a+a)=-a=-9;

a=a+a=-9+(-9)==-18;

所以最后结果就是-18

 

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nigoole
2013-04-08 · TA获得超过1369个赞
知道小有建树答主
回答量:675
采纳率:71%
帮助的人:441万
展开全部
a+=(a-=a+a) 首先计算a-=a+a,因为赋值运算符的优先级小于算术运算符故先算a+a 得出a-=18;此刻a的值还是9,计算a-=18得出a=-9;a+=-9,计算得出a=a+(-9) a=(-9)+(-9) 所以最后a=-18.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
andsom
2013-04-08 · TA获得超过753个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:117万
展开全部
第一步:a + a = 18;
第二步:a - = 18---> a = a - 18,此时a = 9 ,计算结果: -9;
第三步:a += -9 --> a = a+ (-9),因a= - 9,故结果: -18。

最后结果:-18.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式