Last Update 2012/07/05
代入演算子"="は、右辺値を左辺値に代入します。
"演算子" + "=" の形式をとる代入演算子は、演算の対象となる右辺の変数を a、左辺の値を b とした場合、
"演算子" + "=" の形式をとる代入演算子は、演算の対象となる右辺の変数を a、左辺の値を b とした場合、
a "演算子"= b
と記述されるものは
a = a "演算子" b
と記述したものと同様の結果となります。
(例)
#include <stdio.h>
int main()
{
int n = 0;
printf("初期値 n : 0\n");
n = 5;
printf("n = 5 実行後 → n : %d\n", n);
printf("\n");
n = 5;
printf("初期値 n : 5\n");
n *= 3;
printf("n *= 3 実行後 → n : %d\n", n);
printf("\n");
n = 10;
printf("初期値 n : 10\n");
n /= 2;
printf("n /= 2 実行後 → n : %d\n", n);
printf("\n");
n = 20;
printf("初期値 n : 20\n");
n %= 7;
printf("n %%= 7 実行後 → n : %d\n", n);
printf("\n");
n = 5;
printf("初期値 n : 5\n");
n += 3;
printf("n += 3 実行後 → n : %d\n", n);
printf("\n");
n = 5;
printf("初期値 n : 5\n");
n -= 3;
printf("n -= 3 実行後 → n : %d\n", n);
printf("\n");
n = 4;
printf("初期値 n : 4\n");
n <<= 1;
printf("n <<= 1 実行後 → n : %d\n", n);
printf("\n");
n = 4;
printf("初期値 n : 4\n");
n >>= 1;
printf("n >>= 1 実行後 → n : %d\n", n);
printf("\n");
n = 2;
printf("初期値 n : 2\n");
n &= 2;
printf("n &= 2 実行後 → n : %d\n", n);
printf("\n");
n = 7;
printf("初期値 n : 7\n");
n ^= 3;
printf("n ^= 3 実行後 → n : %d\n", n);
printf("\n");
n = 3;
printf("初期値 n : 3\n");
n |= 4;
printf("n |= 4 実行後 → n : %d\n", n);
printf("\n");
return 0;
}
実行結果
初期値 n : 0
n = 5 実行後 → n : 5
初期値 n : 5
n *= 3 実行後 → n : 15
初期値 n : 10
n /= 2 実行後 → n : 5
初期値 n : 20
n %= 7 実行後 → n : 6
初期値 n : 5
n += 3 実行後 → n : 8
初期値 n : 5
n -= 3 実行後 → n : 2
初期値 n : 4
n <<= 1 実行後 → n : 8
初期値 n : 4
n >>= 1 実行後 → n : 2
初期値 n : 2
n &= 2 実行後 → n : 2
初期値 n : 7
n ^= 3 実行後 → n : 4
初期値 n : 3
n |= 4 実行後 → n : 7