C++ 演算子
C++ 演算子
このチュートリアルでは、例を使用して C++ のさまざまなタイプの演算子について学習します。プログラミングでは、演算子は値または変数を操作する記号です。
演算子は、変数と値に対して操作を実行する記号です。例:+
-
は加算に使用される演算子です。 は減算に使用される演算子です。
C++ の演算子は 6 つのタイプに分類できます:
<オール>1. C++ 算術演算子
算術演算子は、変数とデータに対して算術演算を実行するために使用されます。たとえば、
a + b;
ここでは、+
演算子は、2 つの変数 a を追加するために使用されます と b .同様に、C++ にはさまざまな算術演算子があります。
演算子 | オペレーション |
---|---|
+ | 追加 |
- | 引き算 |
* | 掛け算 |
/ | 部門 |
% | モジュロ演算 (除算後の剰余) |
例 1:算術演算子
#include <iostream>
using namespace std;
int main() {
int a, b;
a = 7;
b = 2;
// printing the sum of a and b
cout << "a + b = " << (a + b) << endl;
// printing the difference of a and b
cout << "a - b = " << (a - b) << endl;
// printing the product of a and b
cout << "a * b = " << (a * b) << endl;
// printing the division of a by b
cout << "a / b = " << (a / b) << endl;
// printing the modulo of a by b
cout << "a % b = " << (a % b) << endl;
return 0;
}
出力
a + b = 9 a - b = 5 a * b = 14 a / b = 3 a % b = 1
ここで、演算子 +
、 -
と *
予想通り、加算、減算、乗算をそれぞれ計算します。
/部門オペレーター
操作 (a / b)
に注意してください 私たちのプログラムで。 /
operator は除算演算子です。
上記の例からわかるように、整数を別の整数で割ると、商が得られます。ただし、除数または被除数のいずれかが浮動小数点数の場合、結果は 10 進数で得られます。
In C++, 7/2 is 3 7.0 / 2 is 3.5 7 / 2.0 is 3.5 7.0 / 2.0 is 3.5
%モジュロ演算子
モジュロ演算子 %
剰余を計算します。 a = 9
のとき b = 4
で割ります 、残りは 1 です .
注: %
演算子は整数でのみ使用できます。
増分および減分演算子
C++ にはインクリメント演算子とデクリメント演算子も用意されています:++
と --
++
オペランドの値を 1 増やします--
1 減らします
たとえば、
int num = 5;
// increment operator
++num; // 6
ここでは、コード ++num;
num の値を増やします 1 ずつ .
例 2:インクリメントおよびデクリメント演算子
// Working of increment and decrement operators
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 100, result_a, result_b;
// incrementing a by 1 and storing the result in result_a
result_a = ++a;
cout << "result_a = " << result_a << endl;
// decrementing b by 1 and storing the result in result_b
result_b = --b;
cout << "result_b = " << result_b << endl;
return 0;
}
出力
result_a = 11 result_b = 99
上記のプログラムでは、 ++
を使用しました と --
プレフィックス (++a および --b) としての演算子 .ただし、これらの演算子を 後置 (a++ および b--) として使用することもできます .
詳細については、増分演算子と減分演算子を参照してください。
2. C++ 代入演算子
C++ では、変数に値を代入するために代入演算子が使用されます。たとえば、
// assign 5 to a
a = 5;
ここでは、5
の値を割り当てています。 変数 a に .
演算子 | 例 | 同等 |
---|---|---|
= | a = b; | a = b; |
+= | a += b; | a = a + b; |
-= | a -= b; | a = a - b; |
*= | a *= b; | a = a * b; |
/= | a /= b; | a = a / b; |
%= | a %= b; | a = a % b; |
例 3:代入演算子
#include <iostream>
using namespace std;
int main() {
int a, b;
// 2 is assigned to a
a = 2;
// 7 is assigned to b
b = 7;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "\nAfter a += b;" << endl;
// assigning the sum of a and b to a
a += b; // a = a +b
cout << "a = " << a << endl;
return 0;
}
出力
a = 2 b = 7 After a += b; a = 9
3. C++ 関係演算子
関係演算子は、2 つのオペランド間の関係をチェックするために使用されます。たとえば、
// checks if a is greater than b
a > b;
ここでは、>
関係演算子です。 a かどうかをチェックします b より大きい
関係がtrueの場合 、1 を返します 一方、関係が false の場合 、0 を返します .
演算子 | 意味 | 例 |
---|---|---|
== | 等しい | 3 == 5 false を返します |
!= | 等しくない | 3 != 5 true を返します |
> | より大きい | 3 > 5 false を返します |
< | 未満 | 3 < 5 true を返します |
>= | 以上 | 3 >= 5 false を教えてください |
<= | 以下 | 3 <= 5 true を返します |
例 4:関係演算子
#include <iostream>
using namespace std;
int main() {
int a, b;
a = 3;
b = 5;
bool result;
result = (a == b); // false
cout << "3 == 5 is " << result << endl;
result = (a != b); // true
cout << "3 != 5 is " << result << endl;
result = a > b; // false
cout << "3 > 5 is " << result << endl;
result = a < b; // true
cout << "3 < 5 is " << result << endl;
result = a >= b; // false
cout << "3 >= 5 is " << result << endl;
result = a <= b; // true
cout << "3 <= 5 is " << result << endl;
return 0;
}
出力
3 == 5 is 0 3 != 5 is 1 3 > 5 is 0 3 < 5 is 1 3 >= 5 is 0 3 <= 5 is 1
注意 :関係演算子は意思決定とループで使用されます。
4. C++ 論理演算子
論理演算子は、式が true かどうかをチェックするために使用されます または false .式が真の場合 、1 を返します 一方、式が false の場合 、0 を返します .
演算子 | 例 | 意味 |
---|---|---|
&& | 式1 && 式2 | 論理積。 すべてのオペランドが true の場合にのみ true。 |
|| | 式1 || 式2 | 論理和。 少なくとも 1 つのオペランドが true の場合は true。 |
! | ! 式 | 論理否定。 オペランドが false の場合のみ true。 |
C++ では、意思決定に論理演算子がよく使用されます。論理演算子をさらに理解するために、次の例を見てみましょう。
Suppose,
a = 5
b = 8
Then,
(a > 3) && (b > 5) evaluates to true
(a > 3) && (b < 5) evaluates to false
(a > 3) || (b > 5) evaluates to true
(a > 3) || (b < 5) evaluates to true
(a < 3) || (b < 5) evaluates to false
!(a < 3) evaluates to true
!(a > 3) evaluates to false
例 5:論理演算子
#include <iostream>
using namespace std;
int main() {
bool result;
result = (3 != 5) && (3 < 5); // true
cout << "(3 != 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 < 5); // false
cout << "(3 == 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 > 5); // false
cout << "(3 == 5) && (3 > 5) is " << result << endl;
result = (3 != 5) || (3 < 5); // true
cout << "(3 != 5) || (3 < 5) is " << result << endl;
result = (3 != 5) || (3 > 5); // true
cout << "(3 != 5) || (3 > 5) is " << result << endl;
result = (3 == 5) || (3 > 5); // false
cout << "(3 == 5) || (3 > 5) is " << result << endl;
result = !(5 == 2); // true
cout << "!(5 == 2) is " << result << endl;
result = !(5 == 5); // false
cout << "!(5 == 5) is " << result << endl;
return 0;
}
出力
(3 != 5) && (3 < 5) is 1 (3 == 5) && (3 < 5) is 0 (3 == 5) && (3 > 5) is 0 (3 != 5) || (3 < 5) is 1 (3 != 5) || (3 > 5) is 1 (3 == 5) || (3 > 5) is 0 !(5 == 2) is 1 !(5 == 5) is 0
論理演算子プログラムの説明
(3 != 5) && (3 < 5)
1 と評価されます 両方のオペランド(3 != 5)
のため と(3 < 5)
1 です (真)(3 == 5) && (3 < 5)
0 と評価されます オペランド(3 == 5)
のため 0 です (偽)。(3 == 5) && (3 > 5)
0 と評価されます 両方のオペランドが(3 == 5)
であるため そして(3 > 5)
0 です (偽)。(3 != 5) || (3 < 5)
1 と評価されます 両方のオペランドが(3 != 5)
なので と(3 < 5)
1 です (真)(3 != 5) || (3 > 5)
1 と評価されます オペランド(3 != 5)
のため 1 です (真)(3 == 5) || (3 > 5)
0 と評価されます 両方のオペランドが(3 == 5)
であるため と(3 > 5)
0 です (偽)。!(5 == 2)
1 と評価されます オペランド(5 == 2)
のため 0 です (偽)。!(5 == 5)
0 と評価されます オペランド(5 == 5)
のため 1 です (真)
5. C++ ビット演算子
C++ では、ビットごとの演算子を使用して、個々のビットに対して操作を実行します。 char
と一緒にのみ使用できます および int
データ型。
演算子 | 説明 |
---|---|
& | バイナリ AND |
| | バイナリ OR |
^ | バイナリ XOR |
~ | バイナリの 1 の補数 |
<< | バイナリ左シフト |
>> | バイナリ右シフト |
詳細については、C++ のビット演算子を参照してください。
6.その他の C++ 演算子
C++ で使用できるその他の一般的な演算子の一覧を次に示します。それらについては、後のチュートリアルで学習します。
演算子 | 説明 | 例 |
---|---|---|
sizeof | データ型のサイズを返します | sizeof(int); // 4 |
?: | 条件に基づいて値を返します | string result = (5 > 0) ? "even" : "odd"; // "even" |
& | オペランドのメモリアドレスを表します | # // address of num |
. | 構造体変数またはクラス オブジェクトのメンバーにアクセスします | s1.marks = 92; |
-> | クラス変数または構造体変数にアクセスするためにポインタと共に使用 | ptr->marks = 92; |
<< | 出力値を出力します | cout << 5; |
>> | 入力値を取得 | cin >> num; |
C言語