gpt4 book ai didi

c++ - C++ 17后增量操作

转载 作者:行者123 更新时间:2023-12-01 15:05:22 25 4
gpt4 key购买 nike

C++ 17

有人可以解释如何

int number{5};
number = (number++) + 10;

给出15的输出
int number {5};
number = (++number) + 10;

给出16的输出?

最佳答案

在采用P0145之前(在C++ 17中),第一个示例具有未定义的行为。什么事情都可能发生。

在C++ 11之前,两者都具有不确定的行为。

在C++ 17中,neither has undefined behaviour。这并不意味着您要编写的代码。

如果我们了解the difference between postfix and prefix increment,则对输出的解释很简单:

情况1

  • number++:number变为6,但表达式的计算结果为5
  • 十添加到表达式
  • 结果(15)存储在number


  • 情况二
  • ++number:number变为6,表达式的计算结果为6
  • 十添加到表达式
  • 结果(16)存储在number
  • 关于c++ - C++ 17后增量操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59633725/

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