반응형
한 수식에서 여러 연산자가 사용된 경우에는 각 연산자의 우선순위에 의해서 연상이 차례로 수행됩니다. 예를 들어, '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 | , | → |
반응형
'프로그래밍언어 > C언어' 카테고리의 다른 글
자료형이란 무엇인가 - sizeof 연산자로 자료형의 크기를 구한다 (0) | 2021.10.06 |
---|---|
자료형이란 무엇인가? - 자료형의 의미와 종류 (0) | 2021.10.05 |
비트 연산자 - << 연산자와 >> 연산자 (왼쪽시프트연산자, 오른쪽시프트연산자) (0) | 2021.09.30 |
비트 연산자 - ~ (비트NOT연산자) (0) | 2021.09.29 |
비트 연산자 - ^ (비트XOR연산자) (0) | 2021.09.28 |
댓글