13.6 연습문제: 증가, 감소 연산자 사용하기

다음 소스 코드를 완성하여 2와 7이 각 줄에 출력되게 만드세요.

practice_increment_decrement.c

#include <stdio.h>

int main()
{
    int num1 = ______;
    int num2 = ______;
    int num3;
    int num4;

    num1++;
    num3 = --num1;

    --num2;
    num4 = num2++;

    printf("%d\n", num3);
    printf("%d\n", num4);

    return 0;
}

실행 결과

2
7

정답

 2
 8

해설

최종 결과로 처음에 할당된 값을 알아내려면 코드를 역순으로 살펴보면 됩니다. 단, 결과값을 저장할 때 증감 연산자가 전위인지 후위인지 확인하여 계산합니다.

  • num3 = --num1;에서 num3이 2라면 num1은 3입니다. 그리고 num1++;이 3이 되려면 원래 값은 2입니다.
  • num4 = num2++;에서 num4가 7이라면 num2가 증가하기 전의 값이므로 7입니다. 그리고 --num2;가 7이 되려면 원래 값은 8입니다.