C++ 연산자 우선순위
1. 개요
1.1 문서 개요
이 문서는 C++에서 연산자가 계산되는 순서를 결정하는 연산자 우선순위와 결합 순서(associativity)에 대해 설명합니다. 복합 표현식에서 연산 순서를 명확히 파악하는 데 중요합니다.
2. 내용
2.1 연산자 우선순위 테이블
다음은 주요 연산자의 우선순위 목록입니다.
우선순위 | 연산자 | 결합 방향 |
---|---|---|
1 | :: |
좌 → 우 |
2 | ++ , -- , () , [] , . |
좌 → 우 |
3 | ! , ~ , + , - (단항) |
우 → 좌 |
4 | * , / , % |
좌 → 우 |
5 | + , - |
좌 → 우 |
6 | << , >> |
좌 → 우 |
7 | < , <= , > , >= |
좌 → 우 |
8 | == , != |
좌 → 우 |
9 | & |
좌 → 우 |
10 | ^ |
좌 → 우 |
11 | ` | ` |
12 | && |
좌 → 우 |
13 | ` | |
14 | ?: |
우 → 좌 |
15 | = , += , -= 등 |
우 → 좌 |
16 | , |
좌 → 우 |
2.2 우선순위와 괄호 사용
우선순위가 낮은 연산이 먼저 실행되기를 원할 경우 괄호를 사용해야 합니다.
int x = 10 + 20 * 3; // 곱셈 우선 → x = 70
int y = (10 + 20) * 3; // 괄호 우선 → y = 90
2.3 결합 순서와 복합 표현식
int a = 1;
int b = 2;
int c = 3;
int result = a + b * c; // b*c 먼저 → a + (b*c)
3. 마무리
연산자 우선순위와 결합 방향은 복잡한 표현식의 평가 순서를 이해하는 데 필수적입니다. 실수 방지를 위해 괄호를 적극적으로 사용하여 명확한 계산 순서를 명시할 수 있습니다.