복합 대입 연산자
정의
- 대입 연산자와 또 다른 연산자를 붙여서 사용하는 연산자
- 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);
}
|
참고 : d XOR 연산
d (3) 의 이진수 표현 : 0011
2 의 이진수 표현 : 0010
------------------------
0001
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments