본문 바로가기

공부/c++

전위 연산자, 후위 연산자(++)

반응형

단항 연산자 중에서 증감 연산자 ++,--가 있고 변수 앞에 붙이면 전치 증감 연산자(++i,--i)라고 하고 변수 뒤에 붙이면 후위 증감 연산자(i++,i--)라고 합니다.


전위 증감 연산자는 실행문에서 값이 먼저 증가/감소해서 적용됩니다.

1. int i = 1;  

2. int j = ++i;

j = 2 , i = 2 가 된다.



후위 증감 연산자는 실행문에서 값이 후에 증가/감소해서 적용됩니다.

1. int i = 1;  

2. int j = i++;

j = 1 , i = 2 가 된다.


보통  for문에 자주 사용하고 전위,후위 연산자 모두 같은 결과를 나타내지만 내부적으로 동작 원리가 다릅니다.


 전위 증감 연산자(++i,--i)

1. i = i + 1;  

2. return i;


후위 증감 연산자(i++,i--)

1. const int temp = i;

2. i = i + 1;

3. return temp;


전위 증감 연산자는 변수 자체의 값을 1 증가/감소해서 반환하지만 후위 증감 연산자는 다른 변수에 현재 변수 값을 저장하고 변수 값을 1 증가/감소하고 이전에 저장된 값을 반환합니다.


보통 for문의 증감식에 증감 연산자를 사용하게 되는데 컴파일러에서 최적화를 하기 때문에 차이가 없을 수도 있지만 최적화를 하지 않을 경우에는 전위 증감 연산자를 사용하면 후위 증감 연산자 보다 성능상 이득이 있을 수 있습니다.


연산자 오버로딩으로 증감 연산자를 만든 경우에 후위 증감 연산자는 클래스를 복사해야되므로 성능이 더 떨어지게 됩니다.


결론은 증감 연산자를 사용할 때 전위나 후위 모두 사용해도 될 경우에는 전위 증감 연산자를 사용하면 성능상 이득을 볼 수 있습니다.


반응형