JeffQury 2023-12-31 14:23 采纳率: 93.3%
浏览 7
已结题

define定义三目操作符为什么结果是这样

#define FUN(x,y) (x)<(y)?(x):(y)
void main()
{
    int i = 10, j = 15, k;
    k = 10 * FUN(i, j);
    printf("%d\n", k);
}

展开不是10*(x)<(y)?(x):(y)吗,i小于j为真返回10,10再*10不应该是100吗
为什么它编译的结果是15?很懵,是因为10先乘x再和y对比吗

  • 写回答

2条回答 默认 最新

  • micthis 2023-12-31 14:28
    关注

    10先乘x再跟y对比,三目运算符的优先级低于乘。

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

报告相同问题?

问题事件

  • 系统已结题 1月8日
  • 已采纳回答 12月31日
  • 创建了问题 12月31日

悬赏问题

  • ¥15 微信小程序web-view嵌套H5页面IOS左滑会出现相同的页面,有什么解决方法吗?
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼