C言語の代入演算子で変数に値を代入する方法
目次
- C言語の代入演算子で変数に値を代入する方法
- 代入演算子の構造
- 代入演算子の一覧
- 変数に値を代入する
- 変数に値を加算代入する
- 変数に値を減算代入する
- 変数に値を乗算代入する
- 変数に値を除算代入する
- 変数に値を剰余算代入する
- 変数に値をAND代入する
- 変数に値をOR代入する
- 変数に値をXOR代入する
- 変数に値を左シフト代入する
- 変数に値を右シフト代入する
- おわりに
C言語の代入演算子で変数に値を代入する方法
C言語には多数の演算子があります。
その中でも変数に値を割り当てる演算子を「代入演算子」と言います。
代入演算子にもいろいろ種類がありますが、把握しておくとプログラミングが楽になります。
この記事ではC言語の代入演算子について詳しく解説します。
関連記事
C言語の配列とは?その美しさを解説します
C言語のabs関数で絶対値を求める方法【abs, labs, llabs, imaxabs, fabs, fabsf, fabsl】
C言語のwhile文の使い方4つ
C言語のif文の書き方【if, else if, else】
代入演算子の構造
C言語の代入演算子は↓のような構造になっています。
変数 代入演算子 値;
代入演算子の左側に変数を書き、右側に値を書きます。
代入演算子は種類がたくさんありますが、すべてこの構造になっています。
たとえば加算代入演算子は↓のように書きます。
a += 1;
代入演算子の一覧
C言語の代入演算子の一覧は↓になります。
演算子 | 意味 | 別の書き方 |
a = 1; |
変数aに値1を代入 | 無し |
a += 1; |
変数aに値1を加算 | a = a + 1; |
a -= 1; |
変数aに値1を減算 | a = a - 1; |
a *= 2; |
変数aに値2を乗算 | a = a * 2; |
a /= 2; |
変数aに値2を除算 | a = a / 2; |
a %= 2; |
変数aに値2を剰余算 | a = a % 2; |
a &= 1; |
変数aに値1をAND | a = a & 1; |
a |= 1; |
変数aに値1をOR | a = a | 1; |
a ^= 1; |
変数aに値1をXOR | a = a ^ 1; |
a <<= 1; |
変数aに値1を左シフト | a = a << 1; |
a >>= 1; |
変数aに値1を右シフト | a = a >> 1; |
代入演算子は通常の演算子の省略形です。
たとえばa = a + 1;
という演算はa += 1;
という代入演算に置き換えることが可能です。
a = a - 1;
という演算もa -= 1;
という代入演算に置き換えられます。
このように代入演算は既存の演算のショートカットとして利用することができます。
代入演算を覚えておけばコードをシンプルにすることも可能です。
変数に値を代入する
変数に値を代入するには「=
」を使います。
#include <stdio.h> int main(void) { int a = 1; printf("%d\n", a); // 1 return 0; }
↑の場合、int a = 1;
で変数a
に値1
が代入されます。
変数a
は値1
が保存されている状態になります。
そのためprintf()
で出力すると「1
」と出力されます。
変数に値を加算代入する
変数に値を加算代入するには「+=
」を使います。
#include <stdio.h> int main(void) { int a = 0; a += 1; printf("%d\n", a); // 1 return 0; }
a += 1;
という加算代入はa = a + 1;
と同じ意味になります。
結果は変数に1
が加算されてprintf()
では「1
」と出力されます。
0 + 1
は1
になります。
変数に値を減算代入する
変数に値を減算代入するには「-=
」を使います。
#include <stdio.h> int main(void) { int a = 0; a -= 1; printf("%d\n", a); // -1 return 0; }
a -= 1;
という減算代入はa = a - 1;
と同じです。
結果は変数から1
が減算されてprintf()
では「-1
」と出力されます。
0 - 1
は-1
になります。
変数に値を乗算代入する
変数に値を乗算代入するには「*=
」を使います。
#include <stdio.h> int main(void) { int a = 2; a *= 2; printf("%d\n", a); // 4 return 0; }
a *= 2;
という乗算代入はa = a * 2;
と同じです。
結果は変数に2
が乗算されてprintf()
では「4
」と出力されます。
2 * 2
は4
になります。
変数に値を除算代入する
変数に値を除算代入するには「/=
」を使います。
#include <stdio.h> int main(void) { int a = 4; a /= 2; printf("%d\n", a); // 2 return 0; }
a /= 2;
という除算代入はa = a / 2;
と同じです。
結果は変数に2
が除算されてprintf()
では「2
」と出力されます。
4 / 2
は2
になります。
変数に値を剰余算代入する
変数に値を剰余代入するには「%=
」を使います。
#include <stdio.h> int main(void) { int a = 3; a %= 2; printf("%d\n", a); // 1 return 0; }
a %= 2;
という剰余代入はa = a % 2;
と同じです。
結果は変数に2
が剰余算されてprintf()
では「1
」と出力されます。
3 % 2
は1
になります。
これは3
を2
で割った余りが1
になるということです。
変数に値をAND代入する
変数に値をAND代入するには「&=
」を使います。
#include <stdio.h> int main(void) { int a = 1; a &= 1; printf("%d\n", a); // 1 return 0; }
a &= 2;
というAND代入はa = a & 1;
と同じです。
結果は変数に1
がANDされてprintf()
では「1
」と出力されます。
ANDは両方のビットが立っている場合に真になります。
よって1 & 1
は1
になります。
変数に値をOR代入する
変数に値をOR代入するには「|=
」を使います。
#include <stdio.h> int main(void) { int a = 0; a |= 1; printf("%d\n", a); // 1 return 0; }
a |= 1;
というOR代入はa = a | 1;
と同じです。
結果は変数に1
がORされてprintf()
では「1
」と出力されます。
ORはどちらかのビットが立っている時に真になります。
よって0 | 1
は1
になります。
変数に値をXOR代入する
変数に値をXOR代入するには「^=
」を使います。
#include <stdio.h> int main(void) { int a = 0; a ^= 1; printf("%d\n", a); // 1 return 0; }
a ^= 1;
というXOR代入はa = a ^ 1;
と同じです。
結果は変数に1
がXORされてprintf()
では「1
」と出力されます。
XORは両方のビットが異なる場合に真になります。
よって0 ^ 1
は1
になります。
変数に値を左シフト代入する
変数に値を左シフト代入するには「<<=
」を使います。
#include <stdio.h> int main(void) { int a = 1; a <<= 1; printf("%d\n", a); // 2 return 0; }
a <<= 1;
という左シフト代入はa = a << 1;
と同じです。
結果は変数に1
が左シフトされてprintf()
では「2
」と出力されます。
左シフトはビット列を左にシフト(移動)させます。
よって1 << 1
は2
になります。
1つ左へシフトするとその値は倍になります。
変数に値を右シフト代入する
変数に値を右シフト代入するには「>>=
」を使います。
#include <stdio.h> int main(void) { int a = 2; a >>= 1; printf("%d\n", a); // 1 return 0; }
a >>= 1;
という右シフト代入はa = a >> 1;
と同じです。
結果は変数に1
が右シフトされてprintf()
では「1
」と出力されます。
右シフトはビット列を右にシフト(移動)させます。
よって2 >> 1
は1
になります。
1つ右へシフトするとその値は半分になります。
おわりに
今回はC言語の代入演算子について解説しました。
代入演算子を覚えておけばコードを短くすることもできます。
覚えておいて損はなさそうです。
(^ _ ^) | 代入してあげる |
(・ v ・) | 代入演算子はよく使われます |