演算子 一覧表
### 代入演算子 (=):
`=` 演算子は変数に値を代入するために使用されます。右辺の値が左辺の変数に代入されます。
```c
int x = 5; // xに5を代入
```
### 算術演算子: +, -, *, /, %:
算術演算子は基本的な数学的な操作を実行します。
- `+`: 加算
- `-`: 減算
- `*`: 乗算
- `/`: 除算
- `%`: 剰余
```c
int a = 10, b = 3, result;
result = a + b; // 加算: 13
result = a - b; // 減算: 7
result = a * b; // 乗算: 30
result = a / b; // 除算: 3
result = a % b; // 剰余: 1
```
### 関係演算子: ==, !=, <, >, <=, >=:
関係演算子は、値や変数の大小や等しさを比較します。
- `==`: 等しい
- `!=`: 等しくない
- `<`: より小さい
- `>`: より大きい
- `<=`: 以下
- `>=`: 以上
```c
int x = 5, y = 10;
if (x == y) {
// xとyは等しい
} else if (x != y) {
// xとyは等しくない
} else if (x < y) {
// xはyより小さい
} else if (x > y) {
// xはyより大きい
} else if (x <= y) {
// xはy以下
} else if (x >= y) {
// xはy以上
}
```
### 論理演算子: &&, ||, !:
論理演算子は真偽値に対する論理演算を行います。
- `&&`: 論理積 (AND)
- `||`: 論理和 (OR)
- `!`: 論理否定 (NOT)
```c
int a = 5, b = 10;
if (a > 0 && b > 0) {
// aもbも正の値
}
if (a > 0 || b > 0) {
// aかbのどちらかが正の値
}
if (!(a > 0)) {
// aが正の値でない
}
```
### ビット演算子: &, |, ^, ~, <<, >>:
ビット演算子は整数の各ビットに対する演算を行います。
- `&`: ビット単位のAND
- `|`: ビット単位のOR
- `^`: ビット単位のXOR
- `~`: ビット単位の補数
- `<<`: 左シフト
- `>>`: 右シフト
```c
int a = 5; // 0000 0101
int b = 3; // 0000 0011
int result;
result = a & b; // ビット単位のAND: 0000 0001
result = a | b; // ビット単位のOR: 0000 0111
result = a ^ b; // ビット単位のXOR: 0000 0110
result = ~a; // ビット単位の補数: 1111 1010
result = a << 1; // 左シフト: 0000 1010
result = a >> 1; // 右シフト: 0000 0010
```
### 三項演算子: ? :
三項演算子は条件演算子とも呼ばれ、条件に基づいて値を返します。
```c
int a = 5, b = 10;
int result = (a > b) ? a : b; // aがbより大きい場合はaを、そうでない場合はbをresultに代入
```
### インクリメント/デクリメント演算子: ++, --:
インクリメント (`++`) 演算子は変数の値を1増加させ、デクリメント (`--`) 演算子は変数の値を1減少させます。
```c
int x = 5;
x++; // xは6
x--; // xは5
```
### ポインタ演算子: *, &:
ポインタ演算子は変数のアドレスを取得するための `&` と、ポインタが指し示す値を取得するための `*` があります。
```c
int x = 10;
int *ptr = &x; // ptrはxのアドレスを指すポインタ
int y = *ptr; // yにptrが指すアドレスの値(xの値)を代入
```
### sizeof演算子:
`sizeof` 演算子は、データ型や変数のメモリ上のサイズをバイト単位で取得します。
```c
int size_int = sizeof(int); // int型のサイズを取得
int arr[5];
int size_arr = sizeof(arr); // 配列のサイズを取得
```