연산자 우선순위 — 산술·비교·논리 연산과 괄호 | 기초 C언어 5.4.1
기초 C언어Chapter 05 연산자 › Section 04 연산자의 우선순위 › 01
5.4.1 연산자 우선순위
괄호 → 단항 → 산술 → 비교 → 논리 → 대입. 외우기보다 괄호로 뜻을 분명히 하는 편이 나음.
01먼저 할 것을 정해 둔 약속교재 146p
- 연산자 우선순위(Operator Precedence) — 하나의 수식에 여러 종류의 연산자가 함께 있을 때 어떤 연산을 먼저 수행할지 정해 놓은 규칙.
- 수학 시간의 약속과 같은 것 — 3 + 4 * 2 는 3 + (4 * 2) 로 읽힘. 새로 배우는 규칙이라기보다 이미 알던 약속이 연산자 수만큼 늘어난 것.
- 5.1.2 대입 · 5.1.3 증감에서 본 기호들이 이 순위표 안에 자리를 하나씩 차지하고 있음.
- 컴파일러는 이 규칙에 따라 복잡한 식을 해석하고 계산 순서를 결정함.
02높은 쪽에서 낮은 쪽으로교재 146p~147p
- 아홉 단계를 전부 외울 필요는 없음 — 큰 덩어리의 차례만 잡아 두면 됨. ( ) → 증감 · 단항 → 산술 → 비교 → 논리 → 대입 순으로 낮아짐.
- 산술 안에서도 두 단 — 곱셈 무리 * / % 가 덧셈 무리 + - 보다 한 단 위. 수학과 같음.
- 비교도 두 단 — 관계 < > <= >= 가 동등 == != 보다 한 단 위.
03가장 낮은 자리 — 대입교재 147p
| 종류 | 연산자 | 결합 방향 |
|---|---|---|
| 논리 AND | && | 왼쪽 → 오른쪽 |
| 논리 OR | || | 왼쪽 → 오른쪽 |
| 대입 (가장 낮음) | = += -= *= 등 | 오른쪽 → 왼쪽 |
- 대입이 꼴찌 — 오른쪽 식이 모두 끝난 뒤에 저장이 일어남.
- 비교와 논리가 대입보다 위인 것도 같은 까닭 — 조건을 다 따진 뒤에 결과가 저장됨.
여기서 자주 틀림
논리 AND && 가 논리 OR || 보다 한 단 위라는 것, 그리고 대입이 모든 연산자보다 아래라는 것 두 가지만은 기억해 둘 것.
04괄호 — 아홉 단계 위의 장치교재 147p~148p
- ( ) 는 우선순위가 가장 높아 순위표에 적힌 어느 연산자보다도 앞섬. 괄호 안에 괄호가 또 있으면 가장 안쪽부터 풀림.
- 우선순위는 연산자들의 서열, 괄호는 그 서열을 제치고 차례를 직접 지시하는 장치.
result1 = 3 + 4 * 2; /* 3 + (4 * 2) 로 묶임 */result2 = (3 + 4) * 2; /* (7) * 2 로 묶임 */
전체 코드와 줄별 해설, 실행 결과는 교재 147p~148p CODE 5.13 에 있습니다.
05주저하지 말고 괄호교재 148p
- 규칙을 모두 외우는 쪽은 비효율적 — 실수할 가능성도 높음. 표를 외운 사람만 읽을 수 있는 식보다, 누가 보아도 차례가 드러나는 식이 좋은 코드.
- 이미 순서가 맞는 자리에 괄호를 더 써도 값은 달라지지 않으므로 망설일 까닭이 없음.
- 비교와 논리를 섞어 쓰는 조건식에서는 괄호를 넉넉히 두는 편이 안전함.
- 다음 편은 같은 순위끼리 어느 쪽부터 계산할지 — 결합 방향.
이 절의 핵심 정리
- 연산자 우선순위는 한 식에서 먼저 계산할 연산을 정해 둔 규칙이다.
- 큰 차례는 괄호 → 단항 → 산술 → 비교 → 논리 → 대입 순으로 낮아진다.
- 곱셈 무리 * / % 가 덧셈 무리 + - 보다 먼저 계산된다.
- 대입이 가장 낮아 오른쪽 식이 다 끝난 뒤에 저장이 일어난다.
- 괄호는 우선순위가 가장 높으니 헷갈리면 괄호로 순서를 밝히면 된다.
강의 자료5.4.1 연산자 우선순위
1 / 10
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기