[++, --] 소소한 프로그래밍 이야기 – 1

프로그래밍을 하면서 정말 기본적인 개념인데 가끔 햇갈리는 것들이 있을 것이다. 크게 어려운 개념도 아닌데 원낙 가끔 사용하다 보면 생기는 현상인 것을 때로는 머리 나쁜 자신을 탓할 때가 있다. ^^

이 글은 다름이 아닌 ‘증강 연산자와 감소 연산자 (Increment and Decrement Operators)’에 대해서 간단한 노트이다. 보통 연산자 ‘++’와 ‘–’를 가장 많이 사용하는 경우는 아마도 for 문이 아닐까 싶다. 항상 별 큰 생각 없이 ‘i++’를 찍어왔었던 내가 문득 학부때 배운 기억이 나는데 prefix으로 붙이는 것과 postfix로 붙이는 것과 무슨 차이가 있는지 생각이 가물가물해서 찾아보았다.

i++i = i + 1 혹은 i += 1와 동일하게 i의 값을 1씩 올려준다.  i의 값만 하나씩 증강 시키거나 감소 시기키 위해 ‘–’를 사용할 때는 피연산자 앞에다가 붙이든, 뒤에다가 붙이든 상관이 없다. 하지만! 이 연산자는 값을 return 해주기 때문에 다른 변수에 할당하게 될 때는 이야기가 달라진다.

  • 만약 연산자를 변수 앞에다가 붙이면, 변수에 대입해주기 전에 값이 올라 가므로 기존 값에서 1이 더해진 값이 대입된다.
  • 하지만 만약 연산자를 변수 뒤에다 붙이면 변수에 값이 올라가기 전 먼저 대입이 이루워지므로 기존의 값이 할당이 된다.

코드를 살펴 보자.

Screen Shot 2015-04-21 at 5.38.57 PM

 

(귀찮아서 스크린 캡처를 했으니 아마 복사는 안될 것이다. 물론 간단한 코드를 복사할 사람은 없을 것을 예상 되지만.)

위 예제와 같이 prefix으로 연산자를 사용 하는 것과 postfix로 연산자를 사용하는 것과 다른 결과가 나오게 된다. 뭐 나만 기억을 못하는 정말 작고 사소한 것일지 모르지만 동감하는 분들이 분명 어딘가 있을 것으로 기대한다.