궁금증

단항연산자 위치의 차이 ( i++와 ++i )

GGoris 2015. 3. 30. 16:47
반응형

단항연산자 위치의 차이 ( i++와 ++i )


단항연산자 ++, -- 의 위치가 갖는 의미.


쉽게 이해하기위해 

i++의 경우는 '식을 계산한 뒤' 1증가

++i의 경우는 '1증가 후' 식을 계산

라고 설명하고, 설명듣고, 알고있습니다.


단항연산자가 아래처럼 단독으로 사용될 때는 컴파일러단에서 증가된 값 하나만을

처리하므로 차이 없습니다.

ex)  i++;   <->   ++i;


식에서 사용될 때, 

ex) value = number + (i++);

위의 경우 i++ 가 먼저 계산되고, 'number +'와의 연산을 위해 i++ 이 수행되기 전의 값을 저장하게 됩니다..

따라서,

(후위) i++ 증가하기 전 값을 저장하기위한 메모리 공간이 필요하며.

(전위) ++i 증가한 후의 값만을 사용하기 때문에 메모리 공간 소모 없습니다.


작은 메모리지만 임베디드 시스템과 같은 저성능 하드웨어에서는 전위나 후위나 같은 결과를 뽑을수 있는 식이라면, 전위를 쓰는게 유리하게 됩니다.






참고 :

성장하는 호랑이 - 전위 후위 증감 연산자, ++i, i++ 차이

반응형