++n
연산자 ++가 피연산자 n보다 앞에 위치할 때를 전위라 하고 '1' 증가된 값이 연산의 결과 값
n++
연산자 ++가 피연산자 n보다 뒤에 위치할 때를 후위라 하고 '1' 증가하기 전 값이 연산의 결과 값
int main(void)
{
int num1 = 12;
int num2 = 12;
printf("num1: %d \n", num1);
printf("++num1: %d \n", ++num1);
printf("num1: %d \n", num1);
printf("num2: %d \n", num2);
printf("num2++: %d \n", num2++);
printf("num2: %d \n", num2);
return 0;
}
실행결과
num1: 12
++num1: 13
num1: 13
num2: 12
num2++: 12
num2: 13
헷갈린다면 아래 그림을 기억하자

출처: https://codingadinga.tistory.com/11
전위 연산자라면 결과 값
후위 연산자라면 변수 값
m = 10, n = 5 일 때,
1) result = m++ + --n
2) result = ++m - n--
위 2가지 경우의 계산 결과와 m과 n이 각각 어떤 결과가 나오는가?
정답
1) m = 10, n = 4, result = 14
2) m = 11, n = 5, result = 6
해설
1) m = m + 1 (10), n = n - 1 (4), result = 10 + 4
2) m = m + 1 (11), n = n - 1 (5), result = 11 - 5
IF
int main(void)
{
int m = 10, n = 5;
int result;
result = m++ + --n;
printf("m = %d, n = %d, result = %d \n", m, n, result);
result = ++m - n--;
printf("m = %d, n = %d, result = %d \n", m, n, result);
return 0;
}
만약 위처럼 코드로 실행하면 m과 n의 결과가 후위, 전위 증감한 결과가 저장되기 때문에 위에서 독립적으로 시행한 결과와 다른 아래와 같은 결과값이 나오게 된다.
m = 11, n = 4, result = 14
m = 12, n = 3, result = 8
결과에 의문이 생긴다면 위 그림을 참고하여 조금만 고민한다면 금방 이해할 수 있을 것이다.