증감 연산자는 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 가 됩니다.
'코딩을 합시다 > 최대한 쉽게 설명한 C 언어' 카테고리의 다른 글
초등학생도 이해하는 C 언어 - 논리 연산자 (0) | 2020.05.07 |
---|---|
초등학생도 이해하는 C 언어 - 관계 연산자 (0) | 2020.05.07 |
초등학생도 이해하는 C 언어 - 복합 대입 연산자 (0) | 2020.05.07 |
초등학생도 이해하는 C 언어 - 산술 연산자 (0) | 2020.05.07 |
초등학생도 이해하는 C 언어 - 대입 연산자 (0) | 2020.05.01 |
댓글