【发布时间】:2018-05-03 03:55:08
【问题描述】:
int n = 1;
n = n++;
cout<<n<<endl;
output:1
我在谷歌上搜索过。分析称"n = n++" is:First assign n to n, then n add 1.
我不知道为什么它给出的输出是 1,而不是 2。
【问题讨论】:
-
代码建议使用 C++,但您也有 Java 和 C 的标签。它是哪一个很重要。那么它是什么?
-
我去掉了Java和C标签,因为这段代码sn-p明显是C++。
-
一个可能的扩展是
int tmp = n; n++; n = tmp;,它产生1。但是,正如其他人评论的那样,扩展是模棱两可的,因为它可能是int tmp = n; n = tmp; n++;,它会产生你想看到的东西。两种扩展都是可能的,这就是为什么最好不要编写这种模棱两可的代码。 -
绝对是 C++。在 C++ 中:
n += 1;、‘n++;` 和++n都将n加一。我认为这就是你想要做的。提高你的问题质量!
标签: c++