이전: 증감 연산자, 상위 문서: 표현식   [차례][찾아보기]


8.8 연산자 우선순위

연산자 우선순위가 한 표현식 안에서 서로 다른 연산자가 있을 때 연산자를 묶는 방법을 정합니다. 예를 들어, ‘*’가 ‘+’보다 우선합니다. 그러므로 표현식 a + b * c은, bc를 곱하고 나서 a를 더한다는 의미가 됩니다.(예: a + (b * c))

괄호를 사용하여 우선순위를 무시할 수 있습니다. 우성순위 규칙이 명시된 괄호가 없는 경우에 암묵적인 괄호를 사용한다고 보아도 됩니다. 사실, 연산자를 특이하게 조합하면 풀그림을 읽는 사람들이 적용되는 우선순위 규칙을 헷갈릴 수 있기 때문에 괄호를 써 주는 편이 좋습니다. 풀그림 작성자도 까먹거나 실수할 수 있습니다. 명시적인 괄호가 그러한 문제를 해결하는 데에 도움을 줍니다.

우선순위가 같은 연산자를 함께 사용할 때, 오른쪽부터 묶는 할당 연산자를 제외하면, 가장 왼쪽에 있는 연산자부터 묶입니다. 그러므로 표현식 a - b + c(a - b) + c으로 묶이나, 표현식 a = b = ca = (b = c)으로 묶입니다.

접두사형 단항 연산자의 우선순위는 해당 계수가 다른 연산자의 계수로 쓰일 때 중요합니다. 예를 들면, ‘^’가 ‘-’보다 우선하기에 -x^2-(x^2)를 뜻합니다.

우선순위가 높은 순으로 정렬한 옥타브에 있는 연산자에 관한 표입니다. 특기 사항이 없는 한, 모든 연산자는 왼쪽에서 오른쪽으로 묶입니다.

함수 호출, 배열 색인, 낱칸 배열 색인, 구조체 원소 색인

()’ ‘{}’ ‘.

접미사형 증감

++’ ‘--

이 연산자는 오른쪽에서 왼쪽으로 묶습니다.

전치, 제곱

'’ ‘.'’ ‘^’ ‘**’ ‘.^’ ‘.**

단항 덧셈, 단항 뺄셈, 접두사형 증감, 논리 부정

+’ ‘-’ ‘++’ ‘--’ ‘~’ ‘!

곱셈, 나눗셈

*’ ‘/’ ‘\’ ‘.\’ ‘.*’ ‘./

덧셈, 뺄셈

+’ ‘-

쌍점

:

관계

<’ ‘<=’ ‘==’ ‘>=’ ‘>’ ‘!=’ ‘~=

원소 단위 논리곱

&

원소 단위 논리합

|

논리곱

&&

논리합

||

할당

=’ ‘+=’ ‘-=’ ‘*=’ ‘/=’ ‘\=’ ‘^=’ ‘.*=’ ‘./=’ ‘.\=’ ‘.^=’ ‘|=’ ‘&=

이 연산자는 오른쪽에서 왼쪽으로 묶습니다.


이전: 증감 연산자, 상위 문서: 표현식   [차례][찾아보기]