C++の代入演算子とは?単純代入と複合代入の基本を解説
C++の代入演算子とは
代入演算子は、左オペランドで指定されたオブジェクトに値を格納するための演算子です。C++の代入操作には、大きく分けて次の2種類があります。
- 単純代入:第2オペランドの値を、第1オペランドで指定されたオブジェクトにそのまま格納します。
- 複合代入:算術演算・シフト演算・ビット演算を実行した後、その結果を格納します。
単純代入演算子の例
最も基本的な代入演算子「=」を使用した例を見てみましょう。
#include<iostream>
using namespace std;
int main() {
int i;
i = 10; // 単純代入
cout << i;
return 0;
}出力結果
10
複合代入演算子の概要
複合代入演算子は「e1 op= e2」の形式で記述されます。ここで、e1はconst型ではない変更可能な左辺値(l-value)であり、e2は以下のいずれかである必要があります。
- 算術型
- ポインタ型(opが「+」または「-」の場合)
「e1 op= e2」は「e1 = e1 op e2」と同じ動作をしますが、e1は一度しか評価されないという点が異なります。
C++で利用できる主な複合代入演算子は以下の通りです。
| 演算子 | 説明 |
|---|---|
| *= | 第1オペランドの値に第2オペランドの値を掛け、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| /= | 第1オペランドの値を第2オペランドの値で割り、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| %= | 第1オペランドを第2オペランドの値で割った剰余を求め、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| += | 第1オペランドの値に第2オペランドの値を加え、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| -= | 第1オペランドの値から第2オペランドの値を減算し、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| <<= | 第1オペランドの値を、第2オペランドの値で指定されたビット数だけ左へシフトし、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| >>= | 第1オペランドの値を、第2オペランドの値で指定されたビット数だけ右へシフトし、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| &= | 第1オペランドと第2オペランドのビットごとのAND(論理積)を求め、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| ^= | 第1オペランドと第2オペランドのビットごとの排他的OR(XOR)を求め、結果を第1オペランドで指定されたオブジェクトに格納します。 |
| |= | 第1オペランドと第2オペランドのビットごとの包括的OR(論理和)を求め、結果を第1オペランドで指定されたオブジェクトに格納します。 |
複合代入演算子の使用例
いくつかの複合代入演算子を実際に使ってみましょう。
#include<iostream>
using namespace std;
int main() {
int a = 3, b = 2;
a += b;
cout << a << endl;
a -= b;
cout << a << endl;
a *= b;
cout << a << endl;
a /= b;
cout << a << endl;
return 0;
}出力結果
5 3 6 3
注意点
複合代入を使用する際には、以下の点に注意が必要です。
- 列挙型への複合代入はエラーメッセージが生成されます。
- 左オペランドがポインタ型の場合、右オペランドはポインタ型であるか、0に評価される定数式である必要があります。
- 左オペランドが整数型の場合、右オペランドはポインタ型であってはなりません。
-
C++の算術演算子入門!基本の5つの演算子と複合代入演算子の使い方
C++の基本的な算術演算子 C++には、数値計算のために用意された基本的な算術演算子が5つあります。それぞれ以下の通りです。 加算(+) 減算(-) 乗算(*) 除算(/) 剰余(%) 使用例 これらの演算子は、C++のあらゆる算術演算に使用できます。実際にどのように動作するのか、以下のサンプルコードで確認してみましょう。 #include <iostream> using namespace std; int main() { int a = 21; int b = 10; int c; c = a + b; cout <&l
-
Pythonの代入演算子とは?種類と使い方を一覧表でわかりやすく解説
Pythonには、変数に値を格納するための代入演算子が複数用意されています。基本となる「=」のほかに、算術演算と代入を一度に行える複合代入演算子があり、これらを使いこなすことでコードをより簡潔に記述できます。 Pythonの代入演算子一覧 以下の表は、Pythonで使用できるすべての代入演算子をまとめたものです。 演算子 説明 使用例 = 右側の値を左側の変数に代入します。 c = a + b … a + b の計算結果を c に代入 += 左辺に右辺を加算し、その結果を左辺に代入します。 c += a … c に a を加算(c = c + a と同じ) -= 左辺から右辺を