◎ 증가연산자
값을 하나 증가시키는 연산자를 말합니다.
void main() { int nTemp = 5; nTemp++; printf("nTemp : %d\n", nTemp); return; } |
결과 nTemp : 6 |
◎ 감소연산자
값을 하나 감소시키는 연산자를 말합니다.
void main() { int nTemp = 5; nTemp--; printf("nTemp : %d\n", nTemp); return; } |
결과 : nTemp : 4 |
위에 두 연산자는 코드만 보고도 이해할 수 있을 것입니다.
하지만 저 위에는 후치 연산만 나와있는데요.
전치? 후치?
++nTemp 앞에 연산자가 붙으면 전치연산, nTemp++ 뒤에 연산자가 붙으면 후치연산이라고 합니다.
연산순서의 차이가 있는데요.
++nTemp 전치 연산을 하게되면 증가연산을 먼저 한 후 실행을 하고 nTemp++ 후치연산을 하게되면 실행을 먼저한 후 증가연산을 하게 됩니다.
void main() { int nTemp1 = 5; int nTemp2 = 5; printf("nTemp1 : %d\n", ++nTemp1); printf("nTemp2 : %d\n, nTemp2++"); printf("nTemp2 : %d\n, nTemp2"); return; } |
결과 nTemp1 : 6 nTemp2 : 5 nTemp2 : 6 |
위와 같은 결과가 나오게 되는데요.
++nTemp는 1증가를 먼저 해 준 다음에 printf문을 실행하여 6이라는 결과값이 나오고
nTemp++는 printf문이 먼저 실행되었기 때문에 5라는 결과값이 나옵니다.
하지만 바로 아래에서 다시 printf문을 실행해 주면은 6이 출력됩니다.
연산 순서만 잘 기억한다면 전치, 후치연산이 헷갈리는 일은 별로 없을듯 합니다.
그런데 가끔 소스를 보면은 이런 for문이 있습니다.
for( int nCount = 0; nCount < 5; ++nCount ) { printf( "nCount : %d\n", nCount ); } |
결과 nCount : 0 nCount : 1 nCount : 2 nCount : 3 nCount : 4 |
for( int nCount = 0; nCount < 5; nCount++ ) { printf( "nCount : %d\n", nCount ); } |
결과 nCount : 0 nCount : 1 nCount : 2 nCount : 3 nCount : 4 |
분명히 전치, 후치 연산을 하고 있는데 결과값은 똑같이 나오는데요.
그 이유는 for문 내의 처리순서때문입니다.
for( int nTemp = 0; nTemp < 5; ++nTemp ) 이라는 for문은
1. int nTemp = 0 <- 이 실행
2, nTemp < 5 라는 조건이 맞다면
3. ++nTemp를 실행합니다.
그렇기 때문에 for문 안에 전치 후치를 사용하여도 같은 값이 나오게 됩니다.
'프로그래밍 > C언어' 카테고리의 다른 글
[C언어] scanf, scanf_s 함수 (0) | 2016.04.27 |
---|---|
[C언어] rand, srand 함수 (0) | 2016.04.19 |
[C언어] C언어의 변수 범위 (0) | 2016.04.14 |
[C언어] while문 (0) | 2016.04.04 |
[C언어] 삼항연산자 (0) | 2016.03.25 |