증감 연산자


변수 값을 증가 혹은 감소 시키는 연산자인 증감 연산자와 두 개의 값을 비교 할 수 있는 관계 연산자에 대해 알아보도록 하겠다.



  

증감 연산자


연산자 

설명 

 ++a 

 a에 값을 증가 후 연산 진행

 a++

 연산 한 후에 a 값을 증가 

 --a

 a에 값을 감소 후 연산 진행

 a--

 연산 진행 후 a 값을 감소


여기서 증감에 대한 이해는 a 가 10일 때 a++을 하면 11이 되는 것은 이해가 될 것이라 생각이 든다.

하지만 ++가 변수 a 앞이나 뒤에 있을 때 차이를 알기 힘들 것이다. 

다음 예제를 보면서 이해를 돕도록 하겠다.        



1 : int a = 10;

2 : printf( " a++ -> %d \n", a++ );

3 : printf( " a = %d \n", a);



편의상 main 함수 include는 제외하도록 하겠다. 실행 할수 있는 코드는 아래 따로 표시하도록 하겠다.


a++은 연산 후 a값을 증가 하는 것이다. 그렇다면 2라인의 값은 몇이 나올까?

연산 후기 때문에 printf문 실행 후 a값 증가로 바꿔 설명 하겠다.

printf문 실행할 시점에는 a는 10이다. 그렇기 때문에 10인 상태로 printf이 출력 된 후 a는 11로 바뀐다.

그래서 3라인이 실행 될 때는 이미 증감된 값인 11이 출력 된다.



1 : int a = 10;

2 : printf( " ++a -> %d \n", ++a );


++a은 a값 증가 후 연산을 하는 것이다.

2라인을 보면 연산을 printf 출력이라고 생각하고 printf문 출력 전에 a 값이 증가가 된다.

그래서 printf 출력할 시점에는 이미 a 값이 11이기 때문에 값은 11이 출력이 된다.


전체 예제를 보면서 이해하는데 도움이 되길 바란다.





#include <stdio.h>

#include <stdlib.h>


int main(int argc, char *argv[]) 

{

int a = 10;

printf( "a++ 연산 후 a 값 증가 예제\n");

printf( " a++ -> %d \n", a++ );

printf( " a = %d \n", a);

printf( "=================\n\n");

printf( "++a a 값 증가 후 연산 예제\n");

a = 10;

printf( " ++a -> %d \n", ++a );

printf( "=================\n\n");

printf( "a-- 연산 후 a 값 감소 예제\n");

a = 10;

printf( " a-- -> %d \n", a-- );

printf( " a = %d \n", a);

printf( "=================\n\n");

printf( "--a a 값 감소 후 연산 예제\n");

a = 10;

printf( " --a -> %d \n", --a );

printf( "=================\n\n");

return 0;

}


반응형

'프로그램 > C' 카테고리의 다른 글

[C] 입력 함수 scanf 사용법  (0) 2017.03.10
[C] 출력 함수 printf 사용법  (0) 2017.03.09
[C] 연산자  (0) 2017.03.07
[C] 함수  (0) 2017.03.05
[C] 주석 사용법  (0) 2016.11.23

+ Recent posts