증감연산자
•
증가연산자++ 와 감소연산자--로 나뉜다.
•
전위 ++n 와 후위 n++ 나뉜다.
•
증감 연산자만 단독으로 사용할 때는 큰 차이가 없지만 와 연산자를 사용한 뒤 다른 변수에 할당할 때에는 위치에 큰 차이가 난다.
후위연산자(Postfix Operator)
•
n++; n--;
#include <stdio.h>
int main()
{
int num1 = 2;
int num2 = 2;
int num3;
int num4;
num3 = num1++; // num1의 값을 num3에 할당한 뒤 num1의 값을 1 증가시킴
num4 = num2--; // num2의 값을 num4에 할당한 뒤 num2의 값을 1 감소시킴
printf("%d %d\n", num3, num4); // 2 2
return 0;
}
C
복사
실행결과 : 2 2
num3 = num1++;
// 풀어서 쓰면 다음과 같다.
num3 = num1;
num1 = num1 + 1;
num4 = num2--;
// 풀어서 쓰면 다음과 같다.
num4 = num2;
num2 = num2 - 1;
C
복사
•
후위 연산자는 할당 이후에 연산을 하게 되므로 바뀌기 전의 값이 다른 변수에 할당된다.
•
증감 연산자가 변수 뒤에 쓰이면 연산을 나중에 처리한다는 뜻이다.
전위연산자(Prefix Operator)
•
++n; --n;
#include <stdio.h>
int main()
{
int num1 = 2;
int num2 = 2;
int num3;
int num4;
num3 = ++num1; // num1의 값을 1 증가시킨 뒤 num3에 할당
num4 = --num2; // num2의 값을 1 감소시킨 뒤 num4에 할당
printf("%d %d\n", num3, num4); // 3 1
return 0;
}
C
복사
실행결과 : 3 1
num3 = ++num1;
// 풀어서 쓰면 다음과 같다.
num1 = num1 + 1;
num3 = num1;
num4 = --num2;
// 풀어서 쓰면 다음과 같다.
num2 = num2 - 1;
num4 = num2;
C
복사
•
전위 연산자는 할당 전에 연산을 하게 되므로 바뀐 값이 다른 변수에 할당된다.
•
증감 연산자가 변수 앞에 쓰이면 연산을 먼저 처리한다는 뜻이다.
변수에 할당하지 않고 함수의 인수로 사용했을 때도 동작 방식은 같다.
<후위연산자를 사용했을 때>
#include <stdio.h>
int main()
{
int num1 = 2;
int num2 = 2;
printf("%d %d\n", num1++, num2--); // 2 2: num1, num2의 값을 먼저 출력한 뒤 증감 연산자 동작
printf("%d %d\n", num1, num2); // 3 1: 증감 연산자가 동작한 결과
return 0;
}
실행결과
2 2
3 1
C
복사
<전위연산자를 사용했을 때>
#include <stdio.h>
int main()
{
int num1 = 2;
int num2 = 2;
printf("%d %d\n", ++num1, --num2); // 3 1: 증감 연산자가 먼저 동작한 뒤 num1, num2의 값을 출력
printf("%d %d\n", num1, num2); // 3 1: 앞과 같은 값이 출력됨
return 0;
}
실행결과
3 1
3 1
C
복사