36. 증감 연산자

C언어 – 대입, 증감, 기타 연산자
00:14 대입 연산자
01:09 [실습] 대입 연산자 l-value
01:42 [실습] 복합 대입 연산자
02:19 [실습] 대입 연산자 우선 순위
03:27 증감 연산자
03:57 [실습] 증감 연산자
05:15 기타 연산자
05:28 [실습] 콤마 연산자
06:30 [실습] 형 변환 연산자
07:05 [실습] sizeof 연산자
07:45 [실습] 삼항 조건 연산자

++, — (증감 연산자)

증감 연산자는 단항 연산자로 1 증가하거나 1을 감소하는 연산이예요.
증감 연산을 수행하면 피연산자의 값을 변경하므로 피연산자는 l-value만 올 수 있어요.

++의 연산을 수행하면 피연산자의 값이 1 증가하고 — 연산을 하면 1감소하죠.

증감 연산자는 연산자가 피연산자 앞에 올 수도 있고 뒤에 올 수도 있는데 위치에 따라 연산 결과가 달라요.
그리고 증감 연산자가 피연산자 앞에 올 때 전위 증감 연산자라 부르며 뒤에 올 때 후위 증감 연산자라 불러요.

전위 증감 연산이 하는 것은 피연산자의 값을 1 증감하는 것이며 연산 결과도 값을 1 증감한 피연산자예요.
하지만 후위 증감 연산에서는 피연산자의 값은 1 증감하지만 연산 결과는 연산을 수행하기 전 피연산자의 값이죠.

re = i++;
//re = i;
//i = i+1;
re = ++i;
//i = i+1;
//re = i;
여러분께서 증감 연산자를 사용할 때 다른 표현식과 혼합하여 사용하지 마세요.
혼합하지 않는다면 코드를 분석하고 이해하는 것이 어렵지 않겠지만 혼합하여 사용하면 어려울 수 있어요.
증감 연산자는 다른 표현식과 혼합하여 사용하지 마시고 단독으로 사용하세요.

◈ 전위 후위 증감 연산자 비교

#include <stdio.h>
int main()
{
    int a = 2, b = 2;
    printf("수행 전 a: %d \n",a);
    printf("++a 연산 결과: %d \n",++a);
    printf("수행 후 a: %d \n",a);
    printf("수행 전 b: %d \n",b);
    printf("b++ 연산 결과: %d \n",b++);
    printf("수행 후 b: %d \n",b);
    return 0;
}

◈  실행 결과

수행 전 a: 2
++a 연산 결과: 3
수행 후 a: 3
수행 전 b: 2
b++ 연산 결과: 2
수행 후 b: 3

◈ 기본 연습 (정답 바로가기)
다음 프로그램의 실행 결과를 예측하시오.

#include <stdio.h>
int main()
{
    int i = 8, re = 0;
    re = i++;
    printf("i:%d re:%d \n", i, re);
    return 0;
}