본문 바로가기
프로그래밍언어/C언어

연산자 우선순위

by J코딩 2021. 10. 1.
반응형

한 수식에서 여러 연산자가 사용된 경우에는 각 연산자의 우선순위에 의해서 연상이 차례로 수행됩니다. 예를 들어, '1-2*3'과 같은 식에서 우선순위가 높은 곱셈이 먼저 수행되고, 그 결과값이 다시 1과 뺄셈이 수행되어 결과적으로 5가 됩니다. 만약 뺄셈이 먼저 수행되게 하려면 '(1-2)*3'과 같이 괄호로 묶으면 됩니다. 괄호도 C언어에서는 우선순위가 높은 연산자로 분류됩니다.

그러나 문제는 우선순위가 같은 연산자가 동시에 사용될 때 연산 방향에 의해서 연산 순서가 결정되는데, 연산 방향이란 연산의 순서를 왼쪽에서 오른쪽으로 할 것인지 아니면 반대로 할 것인지를 말합니다. 예를 들어, 곱셈과 나눗셈은 연산의 우선순위가 같은데, 이런 경우네는 항상 왼쪽부터 연산을 수행하게 교칙을 정해 놓은 것입니다. C 프로그램은 다양한 연산자들이 복합적으로 사용되므로 연산자 우선순위를 고려하지 않고 괄호에만 의존하여 프로그램을 작성한다면 간결한 프로그램을 기대하기가 어렵습니다. 다양한 개발자들이 만든 프로그램을 이해할때 필요하므로 다음 표를 잘 참고하기 바랍니다.

 

우선순위 연산자 연산 방향
1 ( ) [ ] -> .
2 ! ~ ++ -- + - * &
3 * / %
4 + -
5 << >>
6 < <= > >=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= &= ^= |=
<<=    >>=
15 ,
반응형

댓글