[解決済み] 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);
意味的には非常に大きな違いです。実際にも、特に演算子のオーバーロード関数に副作用がある場合、あるいはコピーコンストラクタやデストラクタに副作用がある場合(あるいは、あなたが 三・五・ゼロの法則 ).
関連
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] JavaScriptに「NULL合体」演算子はありますか?
-
[解決済み] C#で演算子==はジェネリック型に適用できない?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】構造体のベクター初期化について
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?