Embedded Programming/C/C++
연산자 우선순위와 결합방향
중동콜링
2013. 4. 27. 21:52
연산자 우선순위란, 같은 항에서 연산자가 겹쳤을 때
어느 연산자가 가장 우선권을 갖고 먼저 처리하느냐를 정해놓은 것이다.
이러한 우선순위를 굳이 달달 외울 필요는 없지만,
우선순위가 적용되어 처리되는 경우가 간간이 있으므로
연산자간 우선순위가 있다는 정도만이라도 알아두면 좋을 것 같다.
순위 |
연산기호 |
연산자 |
결합방향 |
1 |
() |
함수호출 |
→ |
[] |
배열 인덱스 |
||
-> |
간접지정(구조체 멤버) |
||
. |
직접지정(구조체 멤버) |
||
++, -- (변수 뒤에서 증가/감소) |
후위증가/감소 |
||
2 |
++, -- (변수 앞에서 증가/감소) |
전위증가/감소 |
← |
sizeof |
바이트 단위 크기 계산 |
||
~ |
비트단위 NOT연산 (비트 반전) |
||
! |
논리 NOT |
||
-, + |
부호 연산(음수, 양수 표현) |
||
& |
주소 연산 |
||
* |
간접지정 연산 (포인터) |
||
3 |
(자료형) |
자료형 변환 (CASTING) |
← |
4 |
*, /, % |
곱셈, 나눗셈, 나머지 연산 |
→ |
5 |
+, - |
덧셈, 뺄셈 |
→ |
6 |
<<, >> |
비트단위 이동(시프트 연산) |
→ |
7 |
<, >, <=, >= |
대소비교 |
→ |
8 |
==, != |
동등비교 |
→ |
9 |
& |
비트 AND연산 |
→ |
10 |
^ |
비트 XOR연산 |
→ |
11 |
| |
비트 OR연산 |
→ |
12 |
&& |
논리 AND |
→ |
13 |
|| |
논리 OR |
→ |
14 |
? : |
조건 연산 |
← |
15 |
=, +=, -=, *=, /=, %=, … |
대입 연산 |
← |
16 |
, |
콤마 연산 |
→ |
* 결합방향 : 같은 순위의 연산자가 하나의 수식에 존재하는 경우 우선적으로 연산하는 방향