C++17
有人可以解释一下如何
int number{5};
number = (number++) + 10;
Run Code Online (Sandbox Code Playgroud)
给出 15 的输出,而
int number {5};
number = (++number) + 10;
Run Code Online (Sandbox Code Playgroud)
给出 16 的输出?
在采用P0145之前(在 C++17 中),第一个示例具有未定义的行为。什么事情都可能发生。
在 C++11 之前,两者都有未定义的行为。
在 C++17 中,两者都没有 undefined behavior。这并不意味着它是您想要编写的代码。
如果我们了解postfix 和 prefix increment 之间的区别,那么对您的输出的解释很简单:
number++
:number
变为 6 但表达式的计算结果为 5number
++number
:number
变为 6 并且表达式的计算结果为 6number
归档时间: |
|
查看次数: |
208 次 |
最近记录: |