Sy_Faker 2019-11-01 22:35 采纳率: 25%
浏览 207
已采纳

关于学习c过程中遇到的问题

大一新生,远在他校的朋友问我的问题,我也不是很懂QAQ

在这里插入图片描述

希望4个选项都解说一下

在这里插入图片描述

如果这个a+=a-=a+a正确的话第一题的A选项为什么错误呢?为什么结果又是-18呢?

在这里插入图片描述

不明白(,)中,的含义,返回值似乎都是,右边的值
在这里插入图片描述

个人觉得我不明白是基础概念不好,有劳各位解答了~

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-02 10:09
    关注

    (1)
    error: lvalue required as left operand of assignment
    a += -a += a * a;
    -a不能出现在+=的右边,如果是
    a += a += a * a;
    是合法的。
    (2)
    涉及条件表达式短路,&&优先级高,所以表达式是 ++i||(++j&&++k);
    因此,编译器为了优化,如果++i是true,无论(++j&&++k)是不是true,整个表达式都是true了,所以后面不计算了。
    所以++i被执行,是2,++j ++k不执行,还是1,而int i = -1, j = 1, k = 1, x;因为左边是false(0),必须对右边求值,所以结果就是1,0,2,2

    其余问题请先采纳本回答,重新提问,我继续回答你。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器