我在C ++中使用前缀n后缀中的增量运算符,但是我得到了不正确的结果,任何人都可以指导我告诉我我做错了什么:)谢谢:) 这是我的代码:)
#include <iostream>
using namespace std;
int main()
{
int a=0;
cout<<a++<<endl<<++a<<endl;
}
期待结果
0
2
但我得到了结果
1
2
答案 0 :(得分:0)
这与增量operator++
及其运作方式有关,具体取决于您将其用作前缀还是后缀:
#include <iostream>
int main() {
int a = 0;
std::cout << a++ << std::endl
// Output: 0. ++ as posfix creates an incremented copy of "a" and AFTER the line gets executed.
std::cout << ++a << std::endl;
// Output: 1. ++ as prefix creates a copy of "a", an incremented copy BEFORE the line gets executed.
std::cout << a++ << std::endl << ++a << std::endl;
// Output: 0
// 1.
// "a" get incremented only by the prefix operator++
}
注意:更改using namespace std
和recommend您使用命名空间+范围运算符,例如std::
用于C ++标准库容器。