【C++】演算子の初心者向け解説
基本演算子
C++で最も基本的な演算子は「算術演算子」です。これらは数値に対して基本的な演算を行います。
加算(+): 2つの数値を足し算します。
int a = 5;
int b = 3;
int sum = a + b; // sumは8になります
減算(-): 2つの数値を引き算します。
int difference = a - b; // differenceは2になります
乗算(*): 2つの数値を掛け算します。
int product = a * b; // productは15になります
除算(/): 2つの数値を割り算します。
int quotient = a / b; // quotientは1になります (整数同士の割り算)
剰余(%): 2つの数値の割り算の余りを求めます。
int remainder = a % b; // remainderは2になります
代入演算子
代入演算子は、値を変数に格納するために使います。最も基本的な代入演算子は「=」です。
int x = 10; // xに10を代入
また、代入演算子には複合代入演算子もあります。例えば、加算代入(+=)や減算代入(-=)などがあります。
加算代入(+=): 変数に値を加算して代入します。
int a = 5;
a += 3; // aは8になります
減算代入(-=): 変数から値を引き算して代入します。
int b = 10;
b -= 4; // bは6になります
比較演算子
比較演算子は、2つの値を比較してその結果が真か偽かを判定します。
等しい(==): 2つの値が等しいかどうかを調べます。
int x = 5;
int y = 5;
bool result = (x == y); // resultはtrueになります
等しくない(!=): 2つの値が等しくないかどうかを調べます。
bool result = (x != y); // resultはfalseになります
より大きい(>): 左側の値が右側の値より大きいかを調べます。
bool result = (x > y); // resultはfalseになります
より小さい(<): 左側の値が右側の値より小さいかを調べます。
bool result = (x < y); // resultはfalseになります
以上(>=): 左側の値が右側の値以上かを調べます。
bool result = (x >= y); // resultはtrueになります
以下(<=): 左側の値が右側の値以下かを調べます。
bool result = (x <= y); // resultはtrueになります
論理演算子
論理演算子は、条件式を組み合わせて論理的な判定を行います。
論理積(&&): 両方の条件が真である場合に真を返します。
bool result = (x > 3 && y == 5); // resultはtrueになります
論理和(||): どちらか一方の条件が真であれば真を返します。
bool result = (x > 3 || y == 10); // resultはtrueになります
論理否定(!): 条件が真であれば偽を返し、偽であれば真を返します。
bool result = !(x > 3); // resultはfalseになります
増分・減分演算子
増分演算子(++)と減分演算子(--)は、変数の値を1だけ増やしたり減らしたりします。
増分演算子(++): 変数の値を1増やします。
int z = 5;
z++; // zは6になります
減分演算子(--): 変数の値を1減らします。
z--; // zは5に戻ります
これらの演算子は、前置きと後置きの2通りの使い方があります。
前置き(++a、--a): 変数の値を先に変更してからその値を使います。
int a = 5;
int result = ++a; // resultは6になります
後置き(a++、a--): 変数の値を使ってから変更します。
int a = 5;
int result = a++; // resultは5になり、aは6に変わります
ビット演算子
ビット演算子は、整数型の値のビットに対して操作を行います。
論理積(&): 2つのビットが両方とも1の場合に1を返します。
int a = 5; // 0101
int b = 3; // 0011
int result = a & b; // resultは1になります(0001)
論理和(|): 2つのビットのどちらかが1の場合に1を返します。
int result = a | b; // resultは7になります(0111)
排他的論理和(^): 2つのビットが異なる場合に1を返します。
int result = a ^ b; // resultは6になります(0110)
左シフト(<<): ビットを左にシフトします。
int result = a << 1; // resultは10になります(1010)
右シフト(>>): ビットを右にシフトします。
int result = a >> 1; // resultは2になります(0010)