증감 연산자
변수 값을 증가 혹은 감소 시키는 연산자인 증감 연산자와 두 개의 값을 비교 할 수 있는 관계 연산자에 대해 알아보도록 하겠다.
증감 연산자 |
연산자 |
설명 |
++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 |