C++ の演算子
演算子は、特定の数学的操作または論理操作を実行するようにコンパイラに指示する記号です。 C++ には豊富な組み込み演算子があり、次の種類の演算子を提供します −
- 算術演算子
- 関係演算子
- 論理演算子
- ビット演算子
- 代入演算子
- その他のオペレーター
この章では、算術、関係、論理、ビット単位、代入、およびその他の演算子を 1 つずつ調べます。
算術演算子
C++ 言語でサポートされている次の算術演算子があります −
変数 A が 10 を保持し、変数 B が 20 を保持すると仮定すると、-
例を表示
演算子 | 説明 | 例 |
---|---|---|
+ | 2 つのオペランドを追加します | A + B で 30 になります |
- | 最初のオペランドから 2 番目のオペランドを引きます | A - B は -10 を与える |
* | 両方のオペランドを乗算します | A * B は 200 を返します |
/ | 分子を分数で割ります | B / A は 2 を返します |
% | モジュラス演算子と整数除算後の剰余 | B % A は 0 を返します |
++ | インクリメント演算子、整数値を 1 増やします | A++ は 11 を返します |
-- | デクリメント演算子、整数値を 1 減らします | A-- 9 を返します |
関係演算子
C++ 言語でサポートされている次の関係演算子があります
変数 A が 10 を保持し、変数 B が 20 を保持すると仮定すると、-
例を表示
演算子 | 説明 | 例 |
---|---|---|
== | 2 つのオペランドの値が等しいかどうかをチェックし、等しい場合は条件が true になります。 | (A ==B) は正しくありません。 |
!= | 2 つのオペランドの値が等しいかどうかをチェックします。値が等しくない場合、条件は true になります。 | (A !=B) は真です。 |
> | 左のオペランドの値が右のオペランドの値よりも大きいかどうかをチェックし、そうであれば、条件は true になります。 | (A> B) は正しくありません。 |
< | 左のオペランドの値が右のオペランドの値より小さいかどうかをチェックし、そうであれば条件は true になります。 | (A |
>= | 左のオペランドの値が右のオペランドの値以上かどうかをチェックし、そうであれば条件は true になります。 | (A>=B) は正しくありません。 |
<= | 左のオペランドの値が右のオペランドの値以下かどうかをチェックし、そうであれば条件は true になります。 | (A <=B) は真です。 |
論理演算子
C++ 言語でサポートされている論理演算子は次のとおりです。
変数 A が 1 を保持し、変数 B が 0 を保持すると仮定すると、−
例を表示
演算子 | 説明 | 例 |
---|---|---|
&& | 論理 AND 演算子と呼ばれます。両方のオペランドがゼロ以外の場合、条件は true になります。 | (A &&B) は偽です。 |
|| | 論理 OR 演算子と呼ばれます。 2 つのオペランドのいずれかがゼロ以外の場合、条件は true になります。 | (A || B) は真です。 |
! | 論理 NOT 演算子と呼ばれます。オペランドの論理状態を逆にするために使用します。条件が true の場合、論理 NOT 演算子は false になります。 | !(A &&B) は真です。 |
ビット演算子
ビット単位の演算子は、ビットに対して機能し、ビットごとの操作を実行します。 &、|、および ^ の真理値表は次のとおりです −
p | q | p &q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
A =60 の場合を想定します。 B =13;バイナリ形式では、次のようになります-
A =0011 1100
B =0000 1101
-----------------
A&B =0000 1100
A|B =0011 1101
A^B =0011 0001
~A =1100 0011
C++ 言語でサポートされているビット単位の演算子を次の表に示します。変数 A が 60 を保持し、変数 B が 13 を保持すると仮定すると、-
例を表示
演算子 | 説明 | 例 |
---|---|---|
& | 2 項 AND 演算子は、両方のオペランドに存在する場合、ビットを結果にコピーします。 | (A &B) は 0000 1100 である 12 を返します |
| | バイナリ OR 演算子は、どちらかのオペランドに存在するビットをコピーします。 | (A | B) は 0011 1101 である 61 を返します |
^ | バイナリ XOR 演算子は、両方ではなく一方のオペランドに設定されている場合、ビットをコピーします。 | (A ^ B) は 0011 0001 である 49 を返します |
~ | 2 進数の 1 の補数演算子は単項であり、ビットを「反転」する効果があります。 | (~A ) は、符号付き 2 進数のため、2 の補数形式で 1100 0011 である -61 を返します。 |
<< | バイナリ左シフト演算子。左オペランドの値は、右オペランドで指定されたビット数だけ左に移動します。 | <<2 は 240 となり、1111 0000 になります |
>> | 二項右シフト演算子。左オペランドの値は、右オペランドで指定されたビット数だけ右に移動します。 | A>> 2 は 0000 1111 である 15 を返します |
代入演算子
C++ 言語でサポートされている次の代入演算子があります −
例を表示
演算子 | 説明 | 例 |
---|---|---|
= | 単純な代入演算子、右側のオペランドから左側のオペランドに値を代入します。 | C =A + B は A + B の値を C に割り当てます |
+= | AND 代入演算子を追加します。右オペランドを左オペランドに追加し、結果を左オペランドに代入します。 | C +=A は C =C + A と同等です |
-= | 減算 AND 代入演算子。左オペランドから右オペランドを減算し、結果を左オペランドに代入します。 | C -=A は C =C - A と同等です |
*= | 乗算 AND 代入演算子。右オペランドと左オペランドを乗算し、結果を左オペランドに代入します。 | C *=A は C =C * A と同等です |
/= | 除算 AND 代入演算子。左のオペランドを右のオペランドで除算し、結果を左のオペランドに代入します。 | C /=A は C =C / A と同等 |
%= | モジュラス AND 代入演算子。2 つのオペランドを使用してモジュラスを取得し、結果を左のオペランドに割り当てます。 | C %=A は C =C % A と同等です |
<<= | 左シフト AND 代入演算子。 | C <<=2 は C =C <<2 と同じです |
>>= | 右シフト AND 代入演算子。 | C>>=2 は C =C>> 2 と同じです |
&= | ビットごとの AND 代入演算子。 | C &=2 は C =C &2 と同じ |
^= | ビット単位の排他的 OR および代入演算子。 | C ^=2 は C =C ^ 2 と同じです |
|= | ビットごとの包含 OR および代入演算子。 | C |=2 は C =C | と同じです。 2 |
その他のオペレーター
次の表に、C++ がサポートするその他の演算子をいくつか示します。
Sr.No | 演算子と説明 |
---|---|
1 | サイズ sizeof 演算子は、変数のサイズを返します。たとえば、sizeof(a) の場合、「a」は整数で、4 が返されます。 |
2 | 状態? X :Y 条件演算子 (?)。 Condition が true の場合、X の値を返します。それ以外の場合は、Y の値を返します。 |
3 | 、 コンマ演算子により、一連の操作が実行されます。コンマ式全体の値は、コンマ区切りリストの最後の式の値です。 |
4 | . (ドット) と -> (矢印) メンバー演算子は、クラス、構造体、および共用体の個々のメンバーを参照するために使用されます。 |
5 | キャスト キャスト演算子は、あるデータ型を別のデータ型に変換します。たとえば、int(2.2000) は 2 を返します。 |
6 | & ポインター演算子 &は、変数のアドレスを返します。例えば &a;変数の実際のアドレスを提供します。 |
7 | * ポインター演算子 * は、変数へのポインターです。たとえば、*var;変数 var へのポインターになります。 |
C++ での演算子の優先順位
演算子の優先順位によって、式内の用語のグループ化が決まります。これは、式の評価方法に影響します。特定の演算子は、他の演算子よりも優先順位が高くなります。たとえば、乗算演算子は加算演算子よりも優先されます −
たとえば、x =7 + 3 * 2;ここで、x には 20 ではなく 13 が割り当てられます。これは、演算子 * が + よりも優先順位が高く、最初に 3*2 で乗算され、次に 7 に加算されるためです。
ここでは、優先順位が最も高い演算子が表の上部に表示され、最も低い演算子が下部に表示されます。式内では、優先順位の高い演算子が最初に評価されます。
例を表示
カテゴリ | 演算子 | 連想性 |
---|---|---|
後置 | () [] -> . ++ - - | 左から右へ |
単項 | + - ! ~ ++ - - (タイプ)* &sizeof | 右から左へ |
乗法 | * / % | 左から右へ |
添加物 | + - | 左から右へ |
シフト | <<>> | 左から右へ |
リレーショナル | <<=>>= | 左から右へ |
平等 | ==!= | 左から右へ |
ビットごとの AND | & | 左から右へ |
ビット単位の XOR | ^ | 左から右へ |
ビットごとの OR | | | 左から右へ |
論理積 | && | 左から右へ |
論理和 | || | 左から右へ |
条件付き | ?: | 右から左へ |
課題 | =+=-=*=/=%=>>=<<=&=^=|= | 右から左へ |
コンマ | 、 | 左から右へ |
C言語