1. ホーム
  2. c++

[解決済み] C++における += 演算子

2022-03-06 14:24:30

質問

誰かが私にdatatypeの2つの変数を追加する次のコードの違いを教えてください。 int . どちらが良いのか知りたいです。

コードAです。

sum = sum + value;

コードB

sum += value;

通常、私たちは ++ 演算子よりも += 1 . これも何か特別な理由があるのでしょうか?

上記コードの規約や効率性の違いについて知りたいです。どれが推奨されますか?

どのように解決するのですか?

の最終結果は、例えば、次のようになります。 someVar++ 演算子と同じです。 someVar += 1 他にもいろいろと遊んでいます。

次のような簡単な文章を考えてみましょう。

foo = bar++;

と実は同等です(同等ではありません)。

temp = bar;
bar += 1;
foo = temp;

プリフィックスとサフィックスのインクリメント/デクリメント演算子については、それぞれ異なる 演算子の優先順位 のようなものに影響します。 ポインタ演算 という演算子を使っています。


の違いについてですが

foo += 1;

そして

foo = foo + 1;

のような)プリミティブ型には違いはありません。 int または float )またはポインタ型である場合、非常に大きな違いがあります。 foo は演算子のオーバーロードを持つオブジェクトです。では

foo += 1;

が等しい

foo.operator+=(1);

の間に

foo = foo + 1;

が等しい

temp = foo.operator+(1);
foo.operator=(temp);

意味的には非常に大きな違いです。実際にも、特に演算子のオーバーロード関数に副作用がある場合、あるいはコピーコンストラクタやデストラクタに副作用がある場合(あるいは、あなたが 三・五・ゼロの法則 ).