永发信息网

执行下面的程序段后,b的值为 (100 ) a = 100 b = 20 a = a + b b = a - b 为什么?

答案:2  悬赏:0  手机版
解决时间 2021-12-29 09:54
执行下面的程序段后,b的值为 (100 ) a = 100 b = 20 a = a + b b = a - b 为什么?
最佳答案
a = 100
b = 20
a = a + b 'a=120,b=20
b = a - b ‘b=120-20=100
赋值语句右边的b是前面的,左边的是赋值后的。
全部回答
要验证这类问题很简单,编个程序就行了: #include void main() { int a, b, c; a = b = c = 1; ++b && ++c || ++a; printf("%d %d %d\n", a, b, c); } --- 结果: 1 2 2 --- 为什么 a 没有改变呢?这是因为 c 语言在运行逻辑表达式的时候,采用了“短路规则”或“优化策略”。 && 和 || 是逻辑运算符,c 语言的规则是算到该运算符左边的时候假如结果已经确定了,就不会继续运算右边的表达式,以节省运算时间。 ++b 的结果不是 0,为逻辑“真”,所以还不知道逻辑与(&&)的结果,要看 ++c 的结果。 ++c 的结果也不是 0,为逻辑“真”,所以 ++b && ++c 的结果为 1(真)。 既然逻辑或(||)的左边是“真”,整个表达式的结果必定是真,所以 ++a 根本没有运行。 因此,a 没有改变,b 和 c 都增加了 1。 --- a值为[1],b值为[2] ,c值为[2]
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黄花落尽清风瑟,残枝枯舞月光寒的意思
下列说法不正确的是A.使用布袋购物、以步代车
投影机 照相机 近视镜 远视镜 放大镜 的成像
我县今天的最低气温是t℃,据气象台报道,明
(95×68)-(94×68)=A.1B.68C.78D.88
华师大二附中
丰田牌gtm6481ads是四驱吗?
巨野凤凰中学孟校长手机号码
高中情侣到同一所大学的概率是多高 考上同一
如何去皱纹最有效
有一个小说,女主角的父亲是将军,母亲是小妾
澳大利亚东北海岸外的大堡礁因其奇特性而成为
京东送货物流为什么这么快
我想知道做演艺经纪人助理能学到经纪人的工作
半决赛用英语怎么说
推荐资讯
松滋市气象局办公位置在哪啊?好找么?
某门市进了一批货物,出售时要在进价的基础上
杭州下过雪吗
你最喜欢的地名?
怎么把页脚往下移
上海虹桥到礼陵的高铁几点钟多钱一张
初中毕业能当演员吗?
求一副三朝酒大门口对联
传奇世界手游新手怎么升级比较快 新手升级攻
有部电影里一个小区里全都在养狗,主要是演两
工程总承包与施工总承包有什么区别?
铃声多多怎么设置个性铃声
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?