연산자 종류 강의에서 여러종류의 연산자를 학습했습니다. 그런데 한 수식 안에 여러 연산자가 있으면 어떤 순서로 연산을 하는지 모릅니다. 가령,
"10 + 2 / 2 - 3 * 2 = ?"
라는 식이 있을 때 여러분들은 어떻게 계산하는지 쉽게 알 것입니다. 정답은 예상하셨다시피 "5"입니다.
"덧셈, 뺄셈보다는 곱셈, 나눗셈을 먼저 계산해야한다."
이것이 바로 '연산자 우선순위'입니다. 그리고 같은 순위의 연산자는 왼쪽부터 순서대로 계산합니다. 이것이 바로 '결합방향'입니다.
그렇다면 쉽게 알 수 있도록 정리해보겠습니다.
순위 | 연산기호 | 연산자 | 결합방향 |
1 | () | 함수호출 | → |
[] | 인덱스 |
-> | 간접지정 |
++, -- | 증가 및 감소 |
2 | +, - | 부호 연산(음수와 양수의 표현) | ← |
! | 논리 NOT |
~ | 비트 단위 NOT |
(type) | 타입 변환 |
* | 간접 지정 연산 |
& | 주소연산 |
sizeof | 바이트 단위 크기 계산 |
3 | *,/,% | 곱셈, 나눗셈 관련 연산 | → |
4 | +,- | 덧셈, 뺄셈 | → |
5 | <<, >> | 비트 이동 | → |
6 | <, <=, >, => | 대소 비교 | → |
7 | ==, != | 동등 비교 | → |
8 | & | 비트 AND | → |
9 | ^ | 비트 XOR | → |
10 | | | 비트 OR | → |
11 | && | 논리 AND | → |
12 | || | 논리 OR | → |
13 | ? : | 조건 연산 | ← |
14 | =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= | 대입 연산 | ← |
15 | , | 콤마 연산 | → |