본문 바로가기
  • 오늘도 신나게
코딩을 합시다/최대한 쉽게 설명한 C 언어

초등학생도 이해하는 C 언어 - 증감 연산자

by 앵그리선반장 2020. 5. 7.

증감 연산자는 1씩 증가 시키거나 감소 시키는 연산자 입니다.

먼저 예제를 보겠습니다.

#include <stdio.h>

void main (void)
{
  int a,b;
  a = 1;
  b = 2;
  
  a++;
  b--;
  
  printf("a=%d  b=%d\n",a,b);
}  

이 코드의 결과는 아래와 같습니다.

a=2  b=1

너무나 쉽죠?

그런데, 여기서 한 가지 재미있는게 있습니다.

바로 ++ 또는 -- 가 변수의 앞에 붙느냐 뒤에 붙느냐에 따라 결과가 달라진다는 것 입니다.

앵??

a++  말고 ++a 또는 --a 가 있다는 뜻입니다.

뭐가 다를까요?

만약 위의 예제와 같이 변수를 증가 또는 감소만 시킨다면 a++ 와 ++a 는 같은 결과를 보입니다.

하지만, 그 결과 값을 어떤 변수에 저장하거나 조건으로 사용된다면 다른 결과를 보일 수 있습니다.

예제 코드를 보시겠습니다.

#include <stdio.h>

void main (void)
{
  int a,b,c;
  a = 2;
  b = 2;
  
  c = a++;
  printf("a=%d  c=%d\n",a,c);
  
  c = ++b;
  printf("b=%d  c=%d\n",b,c);
}  

이 코드의 결과는 아래와 같습니다.

a=3  c=2
b=3  c=3

a 와 b 둘다 2 이고, 둘다 1씩 증가를 해서 c 에 넣었는데, 첫번째 c 의 값이 증가 되지 않은 2 값이 나왔어요.

이것이 바로 차이점 입니다.

c = a++;  는 a 를 먼저 c 에 대입 후 a 값을 증가 합니다.

c = ++a;  는 a 를 증가 한 후 c 에 대입 합니다.

따라서 예제 소스 c = a++; 는 현재 a 의 값인 2 가 먼저 c 로 대입 되고, 그다음 a 값이 증가 하게 되므로,

a=3, c=2 가 됩니다.

댓글