연산자 결합 규칙 — 왼쪽·오른쪽 결합과 대입 연산 | 기초 C언어 5.4.2
기초 C언어Chapter 05 연산자 › Section 04 연산자의 우선순위 › 02
5.4.2 결합 규칙의 이해
순위가 같은 연산자가 나란히 있을 때의 방향. 대부분 왼쪽부터이나 대입과 단항만 오른쪽부터.
01순위가 같을 때의 방향교재 149p
- 결합 규칙(Associativity Rule) — 우선순위가 같은 연산자들의 계산 방향을 왼쪽에서 오른쪽으로 할지, 오른쪽에서 왼쪽으로 할지 정해 놓은 약속.
- 우선순위와 나뉘는 자리 — 우선순위는 서로 다른 연산자가 섞였을 때의 순서, 결합 규칙은 같은 층 안에서의 차례.
- 앞 편에서 미뤄 둔 칸 — 어느 쪽인지는 [표 5.8]의 결합 방향 칸에 적혀 있음.
02왼쪽 결합 — 나열된 순서 그대로교재 149p
- Left-to-Right — 대부분의 C언어 연산자가 이 갈래. 산술 + - * / % · 관계 < > <= >= · 논리 && ||.
- 10 - 5 + 3 — 왼쪽 10 - 5 를 먼저 계산해 5, 그 결과에 3 을 더해 8.
10 - 5 + 3 → (10 - 5) + 3
여기서 자주 틀림
오른쪽부터 묶으면 10 - (5 + 3) 이 되어 답이 2 로 갈림. 뺄셈·나눗셈처럼 순서를 바꾸면 값이 달라지는 연산에서 특히 조심. 16 / 4 / 2 도 (16 / 4) / 2 로 묶임.
03오른쪽 결합 — 대입 · 전위 증감 · 단항교재 149p
- Right-to-Left — 수식의 오른쪽에서 왼쪽 순서로 수행. 대입 = +=, 전위 증감 ++a, 단항 ! ~ 세 갈래.
- 오른쪽이 먼저 정해져야 뜻이 섬 — 세 갈래 모두 그러함. 대표 보기는 여러 변수에 같은 값을 한 번에 넣는 연쇄 대입.
a = b = c = 10;
04연쇄 대입이 풀리는 차례교재 149p~150p
| 차례 | 실행되는 식 | 남는 것 |
|---|---|---|
| 먼저 | c = 10 | c 에 10 저장 · 식의 결과 10 |
| 다음 | b = 10 | 앞 식의 10 을 받음 · 결과 10 |
| 끝 | a = 10 | a 에 10 저장 · 세 변수 모두 10 |
왼쪽 결합이었다면
a = b 부터 계산되어, 값을 넣어 두지도 않은 b 를 a 에 옮겨 담는 꼴. 대입을 오른쪽 결합으로 정해 둔 까닭.
전체 코드와 줄별 해설은 교재 149p~150p CODE 5.14 에 있습니다.
055장을 마치며 — 식이 풀리는 차례교재 150p
- 5장의 갈래 — 계산 · 대입 · 증감 · 관계 · 논리 · 비트 · 기타 연산자를 차례로 봄.
- 식이 풀리는 차례 — 우선순위로 층을 가르고, 같은 층 안에서 결합 방향으로 차례를 정함.
- 헷갈리면 괄호 — 모두 외우기보다 뜻이 드러나게 적는 편이 안전함. 다음은 6장 조건문.
이 절의 핵심 정리
- 결합 규칙은 우선순위가 같은 연산자의 계산 방향을 정한 약속이다.
- 산술·관계·논리 등 대부분은 왼쪽 결합이라 (10 - 5) + 3 으로 묶인다.
- 대입·전위 증감·단항 세 갈래만 오른쪽 결합으로 기억하면 된다.
- a = b = c = 10; 은 c부터 값을 받아 셋 모두 10이 된다.
- 식은 우선순위 → 결합 방향 차례로 풀리고, 헷갈리면 괄호가 가장 낫다.
강의 자료5.4.2 결합 규칙의 이해
1 / 10
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기