gpt4 book ai didi

c++ - "++l *= m"是未定义的行为吗?

转载 作者:IT老高 更新时间:2023-10-28 22:20:49 25 4
gpt4 key购买 nike

我已经开始学习 C++0x。我在某处遇到了以下表达式:

int l = 1, m=2;
++l *= m;

我不知道第二个表达式是否有明确定义的行为。所以我在这里问。

不是UB吗?我只是想知道。

最佳答案

表达式在 C++0x 中定义良好。 Prasoon here 给出了一个非常标准的引用常见问题解答。 .

我不相信 (字面标准引号:解释性文本) 的比例如此之高是可取的,所以我给出一个额外的小解释:记住 ++L 等价于 L += 1,并且该表达式的值计算在 L 的增量之后进行排序。而在 a *= b 中,表达式 a 的值计算在将乘法结果赋值给 a 之前排序 .

你有什么副作用?

  • 递增
  • 乘法结果的赋值

这两个副作用都是由上述两个sequenced aftersequenced before传递排序的。

关于c++ - "++l *= m"是未定义的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4336860/

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