C++で接頭辞nの後置精数にインクリメント演算子を使用していますが、間違った結果を得ています。ここ は私のコードです:)C++のインクリメント演算子で正しい結果が得られない
0
2
しかしイム結果
1
2
を得ることを期待結果
#include <iostream>
using namespace std;
int main()
{
int a=0;
cout<<a++<<endl<<++a<<endl;
}
C++で接頭辞nの後置精数にインクリメント演算子を使用していますが、間違った結果を得ています。ここ は私のコードです:)C++のインクリメント演算子で正しい結果が得られない
0
2
しかしイム結果
1
2
を得ることを期待結果
#include <iostream>
using namespace std;
int main()
{
int a=0;
cout<<a++<<endl<<++a<<endl;
}
これは、あなたが接頭または接尾としてそれを使用する場合によっては、インクリメント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 +スコープ演算子(C++標準ライブラリコンテナの場合はstd::
など)。
'a ++'は 'a'をインクリメントし、その値のコピーを返します。ここには何も予期しないものはありません。 –
両方の使用は1つのステートメント内にあります。あなたは正しいものではない、何らかの種類の左から右の順序を想定しています。 – stark
@ Jaa-cインクリメントする前に値のコピーを返します。ゼロにする必要があります。 –