c语言基础问题,为什么结果是49,b不应该自减1吗?

inta=0,b=1;!(a='0')&&b--;问a+b的值... int a=0,b=1;
!(a='0')&&b--;
问a+b的值
展开
 我来答
夏侯辰逸
2020-03-02 · TA获得超过188个赞
知道小有建树答主
回答量:255
采纳率:45%
帮助的人:46.7万
展开全部

代码正文第二行的计算顺序是

  1. a='0'  赋值成功的话,相当于这条语句执行结果为true

  2. 对第一步的返回结果取反,为false

  3. &&运算会短路,第二步的计算结果已经是false,所以跳过b--

所以b--并没有执行到。b还是1,数字‘0’的ascii码是48,所以最后的输出结果是49.


群:936之后是250最后是734,可以交流分享

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式