C++ の演算子と例: 型とプログラムとは何か

オペレーターとは?

オペレーター オペランドに対する演算を実行するために使用されるシンボルです。 演算子はオペランドを操作します。 演算は数学的または論理的です。 C++ には、さまざまな操作を実行するためのさまざまな種類の演算子があります。

以下を検討してくださいwing 操作:

a = x + y;

上記のステートメントでは、x と y はオペランドであり、+ は加算演算子です。 C++ コンパイラは上記のステートメントを検出すると、x と y を加算し、結果を変数 a に格納します。

C++ の演算子の種類

主にあります C++ の 6 種類の演算子

  1. 算術演算子
  2. 関係演算子
  3. 論理演算子
  4. ビットwise オペレーター
  5. 代入演算子
  6. その他の演算子

算術演算子

これらは、数学/算術演算を実行するために使用される演算子の種類です。 それらには次のものが含まれます。

演算子 Description
+ 加算演算子 オペランドに加算します。
– 減算演算子 2を引くnd 1からのオペランドst オペランド。
* 乗算演算子 2 つのオペランドを乗算します。
/ 除算演算子。 分子を分母で割ります。
% モジュラス演算子 除算後の剰余を返します。
++ インクリメント演算子 整数値を 1 ずつ増やします。
— デクリメント演算子。 整数値を 1 減らします。

例:

#include <iostream>
using namespace std;
int main() {
	int a = 11;
	int b = 5;
	int c;

	cout << "a + b is :" << a+b << endl; //11+5

	cout << "a - b is :" << a-b << endl; //11-5

	cout << "a * b is :" << a*b << endl; //11*5

	cout << "a / b is :" << a/b << endl; //11/5

	cout << "a % b is :" << a%b << endl; //11%5

	cout << "a++ is :" << a++ << endl; //11++

	cout << "a-- is :" << a-- << endl; //12--

	return 0;
}

出力:

算術演算子

コードのスクリーンショットは次のとおりです。

算術演算子

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  4. 整数変数 a を宣言し、それを 11 に初期化します。
  5. 整数変数 b を宣言し、それを 5 に初期化します。
  6. 整数変数の宣言 c.
  7. 操作 a+b の値をコンソール上の他のテキストと並べて表示します。
  8. コンソール上の他のテキストと一緒に操作 ab の値を出力します。
  9. コンソール上の他のテキストと一緒に操作 a*b の値を出力します。
  10. 操作 a/b の値をコンソール上の他のテキストと並べて表示します。
  11. コンソール上の他のテキストと一緒に操作 a%b の値を出力します。
  12. コンソール上の他のテキストと一緒に操作 a++ の値を出力します。
  13. 操作 a の値をコンソール上の他のテキストと並べて表示します。
  14. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  15. main() 関数の本体の終わり。

関係演算子

これらのタイプの演算子は、オペランドの比較を実行します。 たとえば、どのオペランドが他のオペランドより大きいか、または小さいかを知る必要がある場合があります。 それらには次のものが含まれます。

演算子 Description
== 演算子に等しい。 XNUMX つのオペランド値が等しいかどうかをチェックします。
!= 演算子と等しくない XNUMX つのオペランド値が等しいかどうかをチェックします。
> 演算子よりも優れています 左オペランドの値が右オペランドの値より大きいかどうかを確認します。
< より小さい演算子。 左オペランドの値が右オペランドの値より小さいかどうかを確認します。
>= 以上演算子 左のオペランドの値が右のオペランドの値以上であるかどうかを確認します。
<= 以下演算子。 左のオペランドの値が右のオペランドの値以下であるかどうかを確認します。

例:

#include <iostream>
using namespace std;

int main() {
	int a = 11;
	int b = 5;

	cout << "a=11, b=5" << endl;
	if (a == b) {
		cout << "a == b is true" << endl;
	}
	else {
		cout << " a == b is false" << endl;
	}

	if (a < b) {
		cout << "a < b is true" << endl;
	}
	else {
		cout << "a < b is false" << endl;
	}

	if (a > b) {
		cout << "a > b is true" << endl;
	}
	else {
		cout << "a > b is false" << endl;
	}

	return 0;
}

出力:

関係演算子

コードのスクリーンショットは次のとおりです。

関係演算子

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  4. 整数変数 a を宣言し、それを 11 に初期化します。
  5. 整数変数 b を宣言し、それを 5 に初期化します。
  6. 変数 a と b の値を示すテキストをコンソールに出力します。
  7. if 意思決定ステートメントで算術演算 a==b を実行し、それが true か false かを確認します。 { は、if ステートメントの本文の始まりを示します。
  8. 操作 a==b が true の場合にコンソールに出力されるテキスト。 endl は、終了行を表す C++ キーワードです。 カーソルを押して次の行の印刷を開始します。 } は、if ステートメントの本文の終わりを示します。
  9. 上記の if ステートメントの else 部分。 演算 a==b が false の場合にどうするかを示します。
  10. 操作 a==b が false の場合にコンソールに出力されるテキスト。 endl は、終了行を表す C++ キーワードです。 カーソルを押して次の行の印刷を開始します。 } は、else ステートメントの本文の終わりを示します。
  11. 算術演算を実行すると、
  12. 操作が実行された場合にコンソールに印刷するテキスト
  13. 上記の if ステートメントの else 部分。 操作が失敗した場合に何をすべきかが記載されています。
  14. 操作が実行された場合にコンソールに印刷するテキスト
  15. if 意思決定ステートメントで算術演算 a>b を実行し、それが true か false かを確認します。 { は、if ステートメントの本文の始まりを示します。
  16. 操作 a>b が true の場合にコンソールに出力するテキスト。 endl は、終了行を表す C++ キーワードです。 カーソルを押して次の行の印刷を開始します。 } は、if ステートメントの本文の終わりを示します。
  17. 上記の if ステートメントの else 部分。 演算 a>b が false の場合にどうするかを示します。
  18. 操作 a>b が false の場合にコンソールに出力するテキスト。 endl は、終了行を表す C++ キーワードです。 カーソルを押して次の行の印刷を開始します。 } は、else ステートメントの本文の終わりを示します。
  19. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  20. main() 関数の本体の終わり。

論理演算子

また, 論理演算子 XNUMX つ以上の制約/条件を組み合わせます。 論理演算子は、検討中の元の条件の評価も補完します。 それらには次のものが含まれます。

演算子 Description
&& 論理 AND 演算子。 両方のオペランドがゼロでない場合、条件は真となります。
|| 論理 OR 演算子。 オペランドの XNUMX つがゼロ以外の場合、条件は true になります。
! 論理否定演算子。 オペランドの論理状態を反転します。 オペランドが true の場合、! 演算子はそれを false にします。

例:

#include <iostream> 
using namespace std;
int main()
{
	int a = 5, b = 2, c = 6, d = 4;
	if (a == b && c > d)
		cout << "a equals to b AND c is greater than d\n";
	else
		cout << "AND operation returned false\n";

	if (a == b || c > d)
		cout << "a equals to b OR c is greater than d\n";
	else
		cout << "Neither a is equal to b nor c is greater than d\n";

	if (!b)
		cout << "b is zero\n";
	else
		cout << "b is not zero";

	return 0;
}

出力:

論理演算子

コードのスクリーンショットは次のとおりです。

論理演算子

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。
  4. { は、main() 関数の本体の開始を示します。
  5. 4 つの整変数 a、b、c、d を宣言し、それらに異なる値を割り当てます。
  6. if ステートメント内で && (AND) 演算子を使用する。 これは、a の値が b の値と等しい、および a の値が b の値より大きいという XNUMX つの条件を結合します。 最初の条件は false、XNUMX 番目の条件は true。 False&&true は False であるため、if の結果は false になります。
  7. 上記の if ステートメントが true の場合にコンソールに出力されるテキスト。 これは実行されません。
  8. 上記のif文が偽の場合に実行される部分。
  9. if ステートメントが false の場合にコンソールに出力するテキスト。 これが実行されます。
  10. || の使用if ステートメント内の (OR) 演算子。 これは、a の値が b の値と等しい、および a の値が b の値より大きいという XNUMX つの条件を結合します。 最初の条件は false、XNUMX 番目の条件は true。 False||true は True であるため、if の結果は true になります。
  11. 上記の if ステートメントが true の場合にコンソールに出力されるテキスト。 これが実行されます。
  12. 上記のif文が偽の場合に実行される部分。
  13. if ステートメントが false の場合にコンソールに出力するテキスト。 これは実行されません。
  14. 変数の値が0かどうかを確認します。
  15. 上記の if ステートメントが true の場合にコンソールに出力されるテキスト。 これは実行されません。
  16. 上記のif文が偽の場合に実行される部分。
  17. if ステートメントが false の場合にコンソールに出力するテキスト。 これが実行されます。
  18. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  19. main() 関数の本体の終わり。

ビットwise オペレーター

ビットwise 演算子 オペランドに対してビットレベルの演算を実行します。 まず、演算子がビット レベルに変換され、次にオペランドに対して演算が実行されます。 加算や減算などの算術演算をビット レベルで実行すると、結果をより速く得ることができます。 それらには次のものが含まれます。

演算子 Description
& (少しwise そして)。 2 つの数値 (オペランド) を受け取り、1 つの数値の各ビットに対して AND を実行します。両方とも 1 の場合、AND は XNUMX を返し、それ以外の場合はwise 0.
| (少しwise または) 2 つの数値 (オペランド) を受け取り、1 つの数値の各ビットに対して OR を実行します。 いずれかのビットが 1 の場合、XNUMX を返します。
^ (ビットwise XOR) 2 つの数値 (オペランド) を受け取り、2 つの数値の各ビットに対して XOR を実行します。 両方のビットが異なる場合は 1 を返します。
<< (左シフト) XNUMX つの数値を受け取り、最初のオペランドのビットを左シフトします。 XNUMX 番目のオペランドは、シフトする合計位置を決定します。
>> (右シフト) XNUMX つの数値を受け取り、最初のオペランドのビットを右シフトします。 XNUMX 番目のオペランドは、シフトする桁数を決定します。
~(ちょっとwise ない)。 数値を取得し、そのすべてのビットを反転します。
#include <iostream>
using namespace std;

int main() {
	unsigned int p = 60;	  // 60 = 0011 1100  
	unsigned int q = 13;	  // 13 = 0000 1101
	int z = 0;

	z = p & q;
	cout << "p&q is : " << z << endl; // 12 = 0000 1100

	z = p | q;
	cout << "p|q is : " << z << endl; // 61 = 0011 1101

	z = p ^ q;
	cout << "p^q is : " << z << endl; // 49 = 0011 0001

	z = ~p;
	cout << "~p is : " << z << endl; // -61 = 1100 0011

	z = p << 2;
	cout << "p<<2 is: " << z << endl; // 240 = 1111 0000

	z = p >> 2;
	cout << "p>>2 is : " << z << endl; // 15 = 0000 1111

	return 0;
}

出力:

ビットwise オペレーター

コードのスクリーンショットは次のとおりです。

ビットwise オペレーター

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  4. 符号なし整数変数 p を宣言し、それに値 60 (バイナリでは 0011 1100) を割り当てます。
  5. 符号なし整数変数 q を宣言し、それに値 13 (バイナリでは 0000 1101) を割り当てます。
  6. 整数変数 z を宣言し、0 に初期化します。
  7. ビットの実行wise 変数 p および q に対する & (AND) 演算と、結果を変数 z に格納します。
  8. 上記の操作の結果を他のテキストとともにコンソールに出力します。
  9. ビットの実行wise |変数 p と q に対する (OR) 演算と、結果を変数 z に格納します。
  10. 上記の操作の結果を他のテキストとともにコンソールに出力します。
  11. ビットの実行wise 変数 p と q に対する ^ (XOR) 演算を行い、結果を変数 z に格納します。
  12. 上記の操作の結果を他のテキストとともにコンソールに出力します。
  13. ビットの実行wise ~ (NOT) 変数 p と q の演算を行い、結果を変数 z に格納します。
  14. 上記の操作の結果を他のテキストとともにコンソールに出力します。
  15. 変数 p に対して左シフト演算を実行し、結果を変数 z に格納します。
  16. 上記の操作の結果を他のテキストとともにコンソールに出力します。
  17. 変数 p に対して右シフト演算を実行し、結果を変数 z に格納します。
  18. 上記の操作の結果を他のテキストとともにコンソールに出力します。
  19. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  20. main() 関数の本体の終わり。

代入演算子

代入演算子 変数に値を代入します。オペランド/変数は演算子の左側に追加され、値は演算子の右側に追加されます。変数と値は同じデータ型に属している必要があります。wiseを実行すると、C++ コンパイラでエラーが発生します。
例:

x = 5;

上の例では、x は変数/オペランド、= は代入演算子、5 は値です。 C++ でよく使われる代入演算子を次に示します。

演算子 Description
= (単純な代入演算子) 右側の値を左側の変数に代入します。
+= (AND 代入演算子の追加) まず左オペランドの値を右オペランドの値に加算し、次に結果を左の変数に代入します。
-= (減算 AND 代入演算子) まず、左オペランドの値から右オペランドの値を減算し、その結果を左の変数に代入します。
*= (乗算 AND 代入演算子) まず左のオペランドの値と右のオペランドの値を乗算し、その結果を左の変数に代入します。
/= (除算 AND 代入演算子) まず左のオペランドの値を右のオペランドの値で除算し、結果を左の変数に代入します。

例:

#include <iostream> 
using namespace std;
int main()
{
	int x = 5;
	cout << "Initial value of x is " << x << "\n";

	x += 5;
	cout << "x += 5 gives :" << x << "\n";

	x -= 5;
	cout << "x -= 5 gives : " << x << "\n";

	x *= 5;
	cout << "x *= 5 gives :" << x << "\n";

	x /= 5;
	cout << "x /= 5 gives : " << x << "\n";

	return 0;
}

出力:

代入演算子

コードのスクリーンショットは次のとおりです。

代入演算子

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。
  4. { は、main() 関数の本体の開始を示します。
  5. 整数変数 x を宣言し、それに値 5 を割り当てます。
  6. 変数 x の値を他のテキストと一緒にコンソールに表示します。 \n は改行文字です。 印刷時にカーソルを次の行に移動します。
  7. 変数 x の値に 5 を加算し、結果を変数 x に代入します。
  8. 変数 x の値を他のテキストと一緒にコンソールに表示します。
  9. x の値から 5 を減算し、結果を変数 x に代入します。
  10. 変数 x の値を他のテキストと一緒にコンソールに表示します。
  11. 変数 x の値に 5 を乗算し、結果を変数 x に代入します。
  12. 変数 x の値を他のテキストと一緒にコンソールに表示します。
  13. 変数 x の値を 5 で除算し、結果を変数 x に代入します。
  14. 変数 x の値を他のテキストと一緒にコンソールに表示します。
  15. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  16. main() 関数の本体の終わり。

その他の演算子

その他の演算子 sizeof 演算子、カンマ演算子、条件演算子、および演算子の優先順位が含まれます。
C++ でサポートされている他の演算子について説明します。

sizeof演算子

この演算子は変数のサイズを決定します。 データ型のサイズを決定するには、sizeof 演算子を使用します。

例:

#include <iostream> 
using namespace std;
int main() {
	cout<<"Size of int : "<< sizeof(int) << "\n";

	cout<<"Size of char : " << sizeof(char) << "\n";

	cout<<"Size of float : " << sizeof(float) << "\n";

	cout<<"Size of double : " << sizeof(double) << "\n";

	return 0;
}

出力:

sizeof演算子

コードのスクリーンショットは次のとおりです。

sizeof演算子

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  4. sizeof 演算子を使用して整数データ型のサイズを決定し、それを他のテキストと一緒にコンソールに出力します。
  5. sizeof 演算子を使用して文字データ型のサイズを決定し、それを他のテキストと一緒にコンソールに出力します。
  6. sizeof 演算子を使用して float データ型のサイズを決定し、それを他のテキストと一緒にコンソールに出力します。
  7. sizeof 演算子を使用して float データ型のサイズを決定し、それを他のテキストと一緒にコンソールに出力します。
  8. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  9. main() 関数の本体の終わり。

コンマ演算子

また, カンマ演算子 (,) は、一連の操作の実行をトリガーします。 最初のオペランドを表現し、結果を破棄します。 次に、XNUMX 番目のオペランドを評価し、値と型を返します。

#include <iostream>
using namespace std;
int main() {
	int x, y;
	y = 100;
	x = (y++, y + 10, 99 + y);
	cout << x;
	return 0;
}

出力:

コンマ演算子

コードのスクリーンショットは次のとおりです。

コンマ演算子

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  4. XNUMX つの整数変数 x と y を宣言します。
  5. 変数 ya の値 100 を割り当てます。
  6. y の値をインクリメントし、結果を変数 x に代入します。 y の 100 から始まり、101 (y++) まで増加します。 次に、y が 10 に加算されます。最後に、まだ 101 である y が 99 に加算され、200 になります。x は 200 になります。
  7. 変数 x の値をコンソールに表示します。
  8. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  9. main() 関数の本体の終わり。

条件付き演算子

この演算子は条件を評価し、評価の結果に基づいて動作します。

構文:

Condition ? Expression2 : Expression3;

パラメーター:

  • Condition は評価される条件です。
  • Expression1 は、条件が true の場合に実行される式です。
  • Expression3 は、条件が false の場合に実行される式です。

例:

#include <iostream>
using namespace std;
int main() {
	int a = 1, b;
	b = (a < 10) ? 2 : 5;
	cout << "value of b: " << b << endl;
	return 0;
}

出力:

条件付き演算子

コードのスクリーンショットは次のとおりです。

条件付き演算子

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  4. XNUMXつを宣言する 整数変数 aとb。 変数 a には値 1 が割り当てられています。
  5. 変数への値の代入 b.変数 a が 10 未満の場合、b には値 2 が割り当てられ、その他の値は割り当てられます。wise, b には値 5 が割り当てられます。
  6. 変数 b の値を他のテキストと一緒にコンソールに表示します。
  7. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  8. main() 関数の本体の終わり。

演算子の優先順位

XNUMX つの操作に複数の演算子が含まれる場合があります。 その場合、演算子の優先順位によって、最初に評価される演算子が決まります。

次のことwing リストは、C++ における演算子の優先順位を左から右に向かって示しています。

()、[]、*、/、%、+/-、<<、>>、==、!=、^、|、&&、||、?:、=、+=、-=、*= 、/=

まとめ

  • 演算子は、論理演算および算術演算を実行するための記号です。
  • 算術演算子は、オペランドに対してさまざまな算術演算を実行するのに役立ちます。
  • 関係演算子は、オペランドに対してさまざまな比較演算を実行するのに役立ちます。
  • 論理演算子は、オペランドに対してさまざまな論理演算を実行するのに役立ちます。
  • ビットwise 演算子 ちょっとしたパフォーマンスを手伝ってくださいwise オペランドに対する演算。
  • 代入演算子は、オペランドに対してさまざまな算術演算を実行するのに役立ちます。
  • sizeof 演算子は、変数またはデータ型のサイズを返します。
  • カンマ演算子は一連の操作を実行します。
  • 条件演算子は条件を評価し、結果に基づいて動作します。