복합 대입 연산자

정의

  • 대입 연산자와 또 다른 연산자를 붙여서 사용하는 연산자
  • 2항 연산자의 좌측 피연산자에 연산 결과를 대입한다.
1
2
3
expr1 op= expr2;
// op : +, -, *, /, %, <<, >>, &, ^, | 연산자
// 위 수식은 expr1 = expr1 op expr2 와 같다.  

종류

연산자 풀이 설명
+= e1 = e1 + e2 덧셈과 대입연산자의 결합
-= e1 = e1 - e2 뺄셈과 대입연산자의 결합
*= e1 = e1 * e2 곱셈과 대입연산자의 결합
/= e1 = e1 / e2 나눗셈과 대입연산자의 결합
%= e1 = e1 % e2 나머지 연산과 대입연산자의 결합
<<= e1 = e1 « e2 비트연산(제곱)과 대입연산자의 결합
>>= e1 = e1 » e2 비트연산(2나눗셈)과 대입연산자의 결합
&= e1 = e1 & e2 비트연산(AND)과 대입연산자의 결합
^= e1 = e1 ^ e2 비트연산(XOR)과 대입연산자의 결합
|= e1 = e1 | e2 비트연산(OR)과 대입연산자의 결합

예시

1
2
3
4
5
6
7
8
void complex_assignment_operator(){
	int a = 10, b = 3, c = 1, d=3;
	a *= b - 1;
	b /= 2 + 3;
	c += 2;
	d ^= 2;
	printf("a : %d, b : %d, c : %d, d : %d\n", a, b, c, d);
}
1
a : 20, b : 0, c : 3

참고 : d XOR 연산
d (3) 의 이진수 표현 : 0011
2 의 이진수 표현 : 0010
------------------------
0001

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments