연산자 우선순위
우선순위, 낮을 수록 먼저 수행 |
부호 |
우선 방향 |
1 |
() [] -> . | → |
2 |
! ~ ++ -- + -(부호) *(포인터) & sizeof |
← |
3 |
*(곱셈) / % |
→ |
4 |
+ - (덧셈 뺄셈) | → |
5 |
<< >> | → |
6 |
< <= > >= |
→ |
7 |
== != | → |
8 |
& |
→ |
9 |
^ |
→ |
10 |
| |
→ |
11 |
&& |
→ |
12 |
|| |
→ |
13 |
? : |
← |
14 |
= 복합 대입 |
← |
15 |
, | → |
Ex )
void main()
{
int num1 = 1;
int num2 = 2;
int result;
1. result = (num1 && num2) || (num1 + num2); // O
2. result = num1 || num2 == (num2 - num1); // 0
3. result == num1 || num2 = (num2 - num1); // X
}
1. 계산 순서
1. (num1 && num2)
2. (num1 + num2)
3. (num1 && num2) || (num1 + num2)
4. result = (num1 && num2) || (num1 + num2)
2. 계산 순서
1. (num2 - num1)
2. num2 == (num2 - num1)
3. num1 || num2 == (num2 - num1)
4. result == num1 || num2 = (num2 - num1)
3. 계산 순서
1. (num2 - num1)
2. result == num1
3. result == num1 || num2
4. result == num1 || num2 = (num2 - num1);
// = 는 결과값 대입이므로 변수 = 값 이 아닌 값 = 값 이므로 값에다 값을 대입하는 형식이기 때문에 컴파일 오류 발생
삼항 연산자
삼항 연산자도 마찬가지로 연산자 우선순위에 결과를 반영한다.
(조건 ) ? 조건이 참일 경우 : 조건이 거짓일 경우
와 같이 쓰이며,
다음과 같이
val1 == 30 ? result = 1 : result = 2;
일때, val1 조건이 참일 경우 result 에다 1을 정의하고
val1 조건이 거짓일 경우 result 에다 2를 정의한다.
'Programming > C' 카테고리의 다른 글
C Study 03 - 반복문과 조건문 (0) | 2012.07.25 |
---|---|
gotoxy 함수 구현 및 방향키 값 (0) | 2012.07.25 |
C Study 01 - 기초 2 (3) | 2012.05.02 |
C Study 01 - 기초 1 (0) | 2012.05.02 |
Compile 과정 (0) | 2012.05.01 |