Opera中に入る C++: 例付きの型

⚡ スマートサマリー

Opera中に入る C++ 演算子は、算術演算や比較演算から論理演算、ビット演算、代入演算まで、オペランドに対して様々な演算を実行するシンボルです。この資料では、各演算子カテゴリについて、実行可能なサンプルプログラム、出力結果、および評価順序を決定する優先順位規則を解説しています。

  • 算術 Operators: 加算、減算などの数学演算を実行しますtrac数値オペランドに対する乗算、除算、剰余、インクリメント、デクリメント。
  • <XNUMXxEXNUMX><XNUMXxEXNUMX><XNUMXxXNUMXA><XNUMXxXNUMX><XNUMXxXNUMXA>️️ リレーショナル Operators: 等価性および順序チェックを使用して2つのオペランドを比較し、真または偽の結果を返します。
  • 🔗 論理的 Operators: プログラムの決定を制御するには、AND、OR、NOTを使用して条件を組み合わせたり、逆にしたりします。
  • 🔢 ビット単位 Operators: Operaより高速な低レベル処理のために、AND、OR、XOR、NOT、およびシフト演算を使用して個々のビットを直接操作します。
  • 📝 課題およびその他 Operators: 値の代入、sizeof演算子、カンマ、条件演算子について、それぞれ出力例を交えて説明します。
  • 📊 Opera優先順位: 優先順位規則は、複雑な式の中でどの演算子が最初に評価されるかを決定します。

Opera中に入る C++

何ですか Operaトール?

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

次の操作を考えてみましょう。

a = x + y;

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

の種類 Opera中に入る C++

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

  1. 算術 Operaトー
  2. リレーショナル Operaトー
  3. 論理的 Operaトー
  4. ビット単位 Operaトー
  5. 譲渡 Operaトー
  6. その他 Operaトー

まずは、最も一般的に使用される算術演算子から始めましょう。

算術 Operaトー

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

Operator 詳細説明
+ 加算演算子 2 つのオペランドを加算します。
- 下tracオペレーター サブtracts 2nd オペランド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;
}

出力:

算術 Operaトー

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

算術 Operaトー

Code 説明:

  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() 関数の本体の終わり。

リレーショナル Operaトー

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

Operator 詳細説明
== 等号演算子 2 つのオペランド値の等価性をチェックします。
!= 等しくない演算子 2つのオペランド値の不等性をチェックします。
> より大きい演算子 左オペランドの値が右オペランドの値より大きいかどうかをチェックします。
< より小さい演算子 左オペランドの値が右オペランドの値より小さいかどうかをチェックします。
>= より大きいか等しい演算子 左オペランドの値が右オペランドの値以上であるかどうかをチェックします。
<= 等号演算子 左オペランドの値が右オペランドの値以下であるかどうかをチェックします。

具体的な例を挙げますと、以下の通りです。

#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;
}

出力:

リレーショナル Operaトー

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

リレーショナル Operaトー

Code 説明:

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

論理的 Operaトー

その 論理演算子 2つ以上の制約/条件を組み合わせます。論理演算子は、検討対象の元の条件の評価を補完します。それらには以下が含まれます。

Operator 詳細説明
&& 論理AND演算子 両方のオペランドがゼロでない場合、この条件は真となります。
|| 論理OR演算子 オペランドの 1 つがゼロ以外の場合、条件は真になります。
! 論理否定演算子 これはオペランドの論理状態を反転させます。オペランドが真の場合、!演算子はそれを偽にします。

具体的な例を挙げますと、以下の通りです。

#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;
}

出力:

論理的 Operaトー

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

論理的 Operaトー

Code 説明:

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

ビット単位 Operaトー

ビット演算子 オペランドに対してビットレベルの演算を実行します。まず、オペランドをビットレベルに変換し、次に演算を実行します。加算や減算などの算術演算の場合tracビットレベルで処理が行われるため、より迅速に結果が得られます。それらには以下が含まれます。

Operator 詳細説明
& (ビットごとのAND) 2つの数値(オペランド)を受け取り、それぞれの数値の各ビットに対してAND演算を実行します。両方の数値が1の場合は1を返し、そうでない場合は0を返します。
| (ビットOR) 2つの数値(オペランド)を受け取り、それらの数値の各ビットに対してOR演算を実行します。いずれかのビットが1であれば、1を返します。
^(ビットごとのXOR) 2つの数値(オペランド)を受け取り、それぞれの数値の各ビットに対してXOR演算を実行します。両方のビットが異なる場合は1を返します。
<< (左シフト) 2つの数値を受け取り、最初のオペランドのビットを左シフトします。2番目のオペランドは、シフトするビットの総数を決定します。
>> (右シフト) 2つの数値を受け取り、最初のオペランドのビットを右シフトします。2番目のオペランドはシフトするビット数を決定します。
~ (ビットごとの否定) 数値を受け取り、そのすべてのビットを反転します。
#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;
}

出力:

ビット単位 Operaトー

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

ビット単位 Operaトー

Code 説明:

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

譲渡 Operaトー

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

具体的な例を挙げますと、以下の通りです。

x = 5;

上記の例では、x は変数/オペランド、= は代入演算子、5 は値です。 C++:

Operator 詳細説明
= (単純な代入演算子) 右側の値を左側の変数に割り当てます。
+= (AND 代入演算子を追加) 右オペランドの値を左オペランドに追加し、その結果を左側の変数に割り当てます。
-= (サブ)tract AND 代入演算子) サブtrac左オペランドから右オペランドの値を取得し、その結果を左の変数に代入します。
*= (乗算 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;
}

出力:

譲渡 Operaトー

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

譲渡 Operaトー

Code 説明:

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

その他 Operaトー

その他 Operaトー sizeof演算子、カンマを含める Operaトール、条件付き Operaトール、そして Opera演算子の優先順位。サポートされている他の演算子について説明しましょう。 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演算子

Code 説明:

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

コンマ Operaタ

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

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

出力:

コンマ Operaタ

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

コンマ Operaタ

Code 説明:

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

条件付きの Operaタ

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

構文:

Condition ? Expression2 : Expression3;

パラメーター:

  • Condition は評価される条件です。
  • Expression2は、条件が真の場合に実行される式です。
  • Expression3は、条件が偽の場合に実行される式です。

具体的な例を挙げますと、以下の通りです。

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

出力:

条件付きの Operaタ

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

条件付きの Operaタ

Code 説明:

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

Operaトルの優先順位

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

以下のリストは、演算子の優先順位を示しています。 C++左から右へ向かって優先順位が低くなります。

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

よくあるご質問

AIコーディングアシスタントは、正しい演算子を提案したり、演算子の優先順位を説明したり、=と==の混同などの間違いを指摘したりできます。学習速度は向上しますが、信頼性の高いコードを書くためには、演算子の挙動を自分で理解することが依然として不可欠です。

いいえ。AIツールは式の書式設定やレビューを行うことができますが、式の優先順位はプログラムの出力に直接影響します。優先順位を理解することで、コードを読みやすくなり、論理エラーのデバッグや、意図したとおりに動作する式の記述が容易になります。

Opera演算子のオーバーロードを使用すると、クラスなどのユーザー定義型に対して演算子の動作を再定義できます。たとえば、+演算子をオーバーロードして2つのオブジェクトを加算するように設定することで、カスタム型に直感的で組み込み型のような動作を与えることができます。

前置記法(++i)は、まず値をインクリメントしてからその値を返します。後置記法(i++)は、まず現在の値を返してからインクリメントします。この違いは、インクリメントがより大きな式の中で使用される場合に重要になります。

演算子「=」は変数に値を代入するのに対し、演算子「==」は2つの値が等しいかどうかを比較し、真偽値を返します。条件式の中で誤って「=」を使用してしまうのはよくあるバグです。