gpt4 book ai didi

c - C 中具有相同优先级的运算符如何求值?

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:21 25 4
gpt4 key购买 nike

在 C 运算符优先级的上下文中。实际上,下面的代码将被评估如下:

int32_t * result = (int32_t *) addr_base + offset;

|
|


int32_t * result = ((int32_t *) addr_base) + offset;

但是,我在下表中看到的是 cast+ 应该从右到左计算。换句话说,在我的示例中 +cast 的正确选择,因此我希望上面的第一条语句将像这样计算:

int32_t * result = (int32_t *) (addr_base + offset);

因为 +cast 的右侧(所以根据表的优先级更高)。

为什么会发生这种情况?

enter image description here

最佳答案

第 2 行中的 +一元加运算符。这类似于一元否定运算符(例如 x = -y)

加法运算符在第 4 行,优先级低于强制转换。

如果两个运算符具有相同的优先级,则顺序由关联性(从左到右或从右到左)给出

关于c - C 中具有相同优先级的运算符如何求值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57227849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com