effewf 2022-10-24 20:13 采纳率: 50%
浏览 10
已结题

有关操作符优先级的问题

问题遇到的现象和发生背景

在学习操作符优先级时,我遇到了 x * y++++ 的优先级应该比 * 高,所以应该等同于 (x) * (y++),但是我在执行以下代码时,发现二者结果不相等。不知道哪里有问题,请指教!

#include <stdio.h>

int main()
{
    int a = 1;
    int b = 2 * a++;
    int c = (2) * (a++);
    printf("%d %d\n", b, c);

    return 0;
}
运行结果及报错内容

img

  • 写回答

1条回答 默认 最新

  • it_hao528 2022-10-24 20:18
    关注

    ++在前先进行自增运算再进行其他运算,++在后先进行其他运算再进行自增运算
    所以 x * y++ 同于 (x) * (y)
    x * ++y 同于 (x) * (++y)

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

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日