工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++演算子を徹底解説:種類、例、サンプルプログラム付き

演算子とは

C++において演算子とは、1つ以上のオペランドに対して演算を行う記号のことです。演算子には算術、論理、関係、ビット演算、代入など様々な種類があります。

例:

a = x + y;

ここでxとyはオペランド、+は加算演算子です。コンパイラはxとyを加算し、結果をaに格納します。

このチュートリアルで学ぶ内容:

C++の演算子の種類

C++は主に6つのカテゴリの演算子を定義しています:

  1. 算術演算子
  2. 関係演算子
  3. 論理演算子
  4. ビット演算子
  5. 代入演算子
  6. その他の演算子

算術演算子

これらの演算子は数学的計算を行います。

演算子説明
+2つのオペランドを加算
-第1オペランドから第2オペランドを減算
*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;
    cout << "a - b is :" << a-b << endl;
    cout << "a * b is :" << a*b << endl;
    cout << "a / b is :" << a/b << endl;
    cout << "a % b is :" << a%b << endl;
    cout << "a++ is :" << a++ << endl;
    cout << "a-- is :" << a-- << endl;
    return 0;
}

出力:

算術演算子の実行結果

コードの説明は簡潔さのため省略します。

関係演算子

これらの演算子はオペランドを比較し、ブール結果を返します。

演算子説明
==等価性をチェック
!=非等価性をチェック
>より大きい
<より小さい
>=以上
<=以下

サンプルプログラム:

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

出力:

関係演算子の実行結果

論理演算子

論理演算子はブール式を結合します。

演算子説明
&&論理AND – 両オペランドが非ゼロならtrue
||論理OR – 少なくとも一方が非ゼロならtrue
!論理NOT – ブール値を反転

サンプルプログラム:

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

出力:

論理演算子の実行結果

ビット演算子

ビット演算子は整数値の個々のビットに対して演算を行います。

演算子説明
&ビット単位AND – 両ビットが1なら1
|ビット単位OR – 少なくとも一方が1なら1
^ビット単位XOR – ビットが異なるなら1
<<左シフト – ビットを左へシフト、0で埋める
>>右シフト – ビットを右へシフト、下位ビットを捨てる
~ビット単位NOT – すべてのビットを反転

サンプルプログラム:

#include <iostream>
using namespace std;
int main() {
    unsigned int p = 60; // 0011 1100
    unsigned int q = 13; // 0000 1101
    int z = 0;
    z = p & q;
    cout << "p&q is : " << z << endl; // 12
    z = p | q;
    cout << "p|q is : " << z << endl; // 61
    z = p ^ q;
    cout << "p^q is : " << z << endl; // 49
    z = ~p;
    cout << "~p is : " << z << endl; // -61
    z = p << 2;
    cout << "p<<2 is: " << z << endl; // 240
    z = p >> 2;
    cout << "p>>2 is : " << z << endl; // 15
    return 0;
}

出力:

ビット演算子の実行結果

代入演算子

これらの演算子は変数に値を代入し、多くの場合算術演算と組み合わせます。

演算子説明
=単純代入
+=加算して代入
-=減算して代入
*=乗算して代入
/=除算して代入

サンプルプログラム:

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

出力:

代入演算子の実行結果

その他の演算子

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演算子の実行結果

カンマ演算子

式のシーケンスを実行し、最後の式の値を返します。

例:

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

出力:

カンマ演算子の実行結果

条件演算子

三項演算子とも呼ばれ、条件を評価して2つの式のいずれかを返します。

構文:condition ? expr1 : expr2

例:

#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つの式に複数の演算子が現れる場合、優先順位ルールが評価順序を決定します。高い順から:

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

まとめ

C言語

  1. バイオチップ:定義、種類、現代バイオテクノロジーにおける応用
  2. C#演算子完全ガイド:C#における演算子の包括的解説
  3. C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
  4. C++ switch文をマスター:構文、使い方、実践例
  5. C++動的配列の確保をマスター:コード例付き実践ガイド
  6. C++演算子オーバーロード:コード例付き実践ガイド
  7. C++構造体を実例で徹底解説
  8. C++のstd::listをマスターする:構文、関数、実践例
  9. C++ structとclassの違い:構文、特徴、使い分けのベストプラクティス
  10. C#抽象クラス実践チュートリアル:コード例で理解する設計パターン
  11. C++オーバーロード完全マスター:関数と演算子のオーバーロード