본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter20. 증감 연산자(++ --) 사용법과 전위·후위 차이 정리

by about_IT 2025. 4. 16.

변수의 값을 1씩 늘리거나 줄이고 싶을 때, 어떻게 해야 할까요?


프로그래밍에서는 숫자를 1씩 증가시키거나 감소시키는 일이 정말 자주 발생합니다.
예를 들어 반복문에서 카운트를 세거나, 어떤 점수를 하나씩 줄이는 등의 작업이 그렇죠.

이때 매번 a = a + 1, a = a - 1처럼 길게 쓰는 대신,
C언어에서는 이를 간단하게 처리할 수 있는 **증감 연산자(Increment / Decrement Operator)**를 제공합니다.


● 증감 연산자란?

증감 연산자는 변수의 값을 1 증가 또는 1 감소시키는 연산자입니다.
해당 변수 앞이나 뒤에 ++ 또는 --를 붙여 사용합니다.


연산자 의미 예시 설명
++ 1 증가 a++, ++a 변수의 값을 1 증가
-- 1 감소 a--, --a 변수의 값을 1 감소

● 사용 예시

int a = 5;

a++;      // a는 6이 됨
--a;      // a는 다시 5가 됨

++는 값을 1 증가시키고, --는 값을 1 감소시킵니다.


● 전위 vs 후위 증감의 차이

++a와 a++은 둘 다 값을 1 증가시키지만, 사용되는 시점이 다릅니다.

 
형태 설명 예시 코드결과
++a 먼저 1 증가한 후 사용 b = ++a; a = 6, b = 6
a++ 먼저 사용한 후 1 증가 b = a++; b = 5, a = 6
int a = 5;
int b = ++a;  // 전위: a는 6, b도 6

int x = 5;
int y = x++;  // 후위: y는 5, x는 6

마찬가지로 --도 전위와 후위 개념이 똑같이 적용됩니다.


● 증감 연산자는 어디에 자주 쓰일까?

대표적으로 반복문에서 많이 사용됩니다.

for (int i = 0; i < 5; i++) {
    printf("%d\n", i);
}
  • i++는 매 반복마다 1씩 증가
  • i--를 쓰면 거꾸로 카운트다운도 가능

● 주의할 점

  • 전위/후위의 결과 차이에 주의하세요.
int a = 3;
printf("%d\n", a++);  // 출력: 3
printf("%d\n", a);    // 출력: 4

 

 

  • 증감 연산자는 변수에만 사용 가능
(5++)  // X 상수에는 사용 불가

 

  • 복잡한 수식에서는 괄호로 감싸는 것이 안전
int result = (a++) + 2;

 


++, -- 증감 연산자는 간단하지만 반복문, 누적 계산, 조건 제어 등에서 매우 자주 사용되는 중요한 연산자입니다.


실습 문제

아래 문제는 직접 코드를 작성해보고, 실행 결과를 확인한 후 스스로 정답을 유추해보는 형태입니다.

정답은 바로 아래에서 확인할 수 있습니다.

 

문제 1

정수형 변수 a = 5가 있을 때, a++을 실행한 뒤 a를 출력하면 어떤 값이 나올까요?

 

문제 2

다음 코드의 출력 결과를 예상해보세요.

int x = 3;
int y = ++x;
printf("%d %d\n", x, y);

 

문제 3

다음 코드의 출력 결과는?

int a = 4;
int b = a++;
printf("%d %d\n", a, b);

 

문제 4

count = 10일 때, count--를 사용하여 값을 1 감소시키고 출력하는 코드를 작성해보세요.

 

문제 5

정수형 변수 i = 7이 있을 때, ++i + i++의 결과는 무엇일까요?
(전위와 후위 증감이 섞여 있을 때 주의해서 계산해보세요)







▶ 정답 확인하기

 

정답 1

a = 5;
a++;
printf("%d\n", a);  // 출력: 6


정답 2

x = 4, y = 4  
설명: 전위 증가(++x)이므로 x가 먼저 4가 되고, 그 값이 y에 대입됨


정답 3

a = 5, b = 4  
설명: 후위 증가(a++)이므로 b에 4가 먼저 대입되고, 그 다음 a가 5가 됨


정답 4

int count = 10;
count--;
printf("%d\n", count);  // 출력: 9


정답 5

결과: 16

int i = 7;
++i      → i는 8, 값은 8  
i++      → 값은 8 (먼저 사용), i는 9로 증가  
8 + 8 = 16