killfafa 2022-04-07 14:17 采纳率: 100%
浏览 47
已结题

关于define的问题

img


为什么结果是10而不是18,不应该是2+1+2+1=6,然后6*3嘛

img


这里为什么是F,不太明白,和运算符优先级有关系吗

  • 写回答

4条回答 默认 最新

  • A-Chin 2022-04-07 14:26
    关注
    1. 这个的意思就是以后遇到有 add(x) 的地方就自动替换为 x + x,而不是 (x + x),因此 int sum = add(1 + 2) * 3 就等价于 int sum = 1 + 2 + 1 + 2 * 3,因此结果等于 10

    2. 优先级比较:* 高于 < 高于 ==,对于2 * 2 == 5 < 2 * 2 == 4,可以看成 (2 * 2) == (5 < (2 * 2)) == 4,即 4 == (5 < 4) == 4,即 4 == 0 == 4,然后得到 0 == 4,因此是FALSE,执行 else 语句

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 SQL Server下载
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求