연산자 우선순위
연산자 우선순위 표
연산자 우선순위 (높음 → 낮음)
우선순위 | 연산자 | 설명 | 결합 방향 |
1 | () | 괄호(수식 우선 계산) | 왼 → 오 |
2 | ++, -- | 단항 연산자 (증가, 감소) | 오 → 왼 |
3 | +, - (단항) | 부호 연산자 (+, -) | 오 → 왼 |
4 | *, /, % | 곱셈, 나눗셈, 나머지 | 왼 → 오 |
5 | +, - (이항) | 덧셈, 뺄셈 | 왼 → 오 |
6 | <<, >> | 비트 이동 연산자 | 왼 → 오 |
7 | <, <=, >, >= | 비교 연산자 | 왼 → 오 |
8 | ==, != | 동등/비동등 비교 연산자 | 왼 → 오 |
9 | & | 비트 AND 연산자 | 왼 → 오 |
10 | ^ | 비트 XOR 연산자 | 왼 → 오 |
11 | | | 비트 OR 연산자 | 왼 → 오 |
12 | && | 논리 AND 연산자 | 왼 → 오 |
13 | || | 논리 OR 연산자 | 왼 → 오 |
14 | ? : | 삼항 연산자 | 오 → 왼 |
15 | =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= | 대입 연산자 | 오 → 왼 |
16 | , | 쉼표 연산자 | 왼 → 오 |
연산자 우선순위 이해하기
- 괄호 ()가 가장 먼저 계산됨
- 예: (3 + 5) * 2 → 8 * 2 → 16
- 단항 연산자 (++, --, +, -)가 다음으로 계산됨
- 예: -5 + 3 → (-5) + 3 → -2
- 산술 연산자 중 *, /, %가 +, -보다 우선
- 예: 2 + 3 * 4 → 2 + 12 → 14
- 비트 연산자는 논리 연산자보다 먼저 계산됨
- 예: 3 & 5 == 1 → (3 & 5) == 1 → 1 == 1 → true
- 논리 연산자 중 &&가 ||보다 우선
- 예: true || false && false → true || (false && false) → true || false → true
- 삼항 연산자는 대입 연산자보다 우선
- 예: x = (y > 0) ? 10 : 20
- y > 0 평가 후 10 또는 20을 대입
- 예: x = (y > 0) ? 10 : 20
- 대입 연산자는 마지막에 실행됨
- 예: x = y + 2 * 3 → x = y + 6 → x = (y + 6)
연산자 우선순위 문제 예제
문제 1
int x = 2 + 3 * 4;
정답: x = 2 + (3 * 4) = 2 + 12 = 14
문제 2
int a = 5, b = 10;
int c = (a > b) ? a : b;
정답: c = (5 > 10) ? 5 : 10 = 10
문제 3
int x = 5, y = 10, z;
z = x & y == 0;
정답: z = (x & y) == 0 → (5 & 10) == 0 → 0 == 0 → z = 1 (true)
핵심 요약:
- 괄호 () → 단항 연산자 → 산술 연산자 → 관계/동등 연산자 → 비트 연산자 → 논리 연산자 → 삼항 연산자 → 대입 연산자 순.
- 복잡한 수식에서는 괄호를 사용하여 연산 순서를 명확히.
추가 팁:
- 우선순위가 같은 연산자가 여러 개 있을 때는 대부분 왼쪽에서 오른쪽으로 연산이 진행됩니다.
- 단항 연산자, 삼항 조건 연산자, 대입 연산자는 오른쪽에서 왼쪽으로 연산이 진행됩니다.
'CS' 카테고리의 다른 글
[Linux] 리눅스 명령어 (0) | 2025.03.27 |
---|---|
소프트웨어 용어 정리 (0) | 2025.03.05 |
오픈소스 라이선스 (0) | 2025.03.05 |
댓글