예시를 하나 더 보겠습니다. 다음과 같이 작성하고 실행해 보세요.
3.2 연산자.c
int main(void) {
int b = 20;
printf("b는 %d\n", ++b);
printf("b는 %d\n", b++);
printf("b는 %d\n", b);
return 0;
}
실행결과 |
b는 21 b는 21 b는 22 |
첫 번째와 두 번째는 21이 나오고 세 번째만 22가 나왔습니다. 첫 번째와 두 번째 값이 왜 같을까요? 이는 ++ 연산자의 위치에 따라 연산 순서가 달라지기 때문에 그렇습니다. ++b처럼 ++ 연산자가 변수 앞에 있을 때(전위라고 함)는 먼저 1 증가 연산을 한 후에 출력 작업을 수행합니다. 그리고 b++처럼 ++ 연산자가 변수 뒤에 있을 때(후위라고 함)는 먼저 출력 작업을 수행한 후에 다음 줄로 넘어가기 전에 1 증가 연산을 수행합니다.
그림 3-2 ++ 연산자의 연산 순서