for문 관련.. 궁금한 사항이있습니다.
글쓴이: leesunghee47 / 작성시간: 토, 2008/08/30 - 11:00오전
for ( i = 0; i < 10; ++i )
printf("%d\n", i);
for ( i = 0; i < 10; i++ )
printf("%d\n", i);
두개를 실행하면 둘다
0
1
2
3
4
5
6
7
8
9
가 실행이 되는데요
++i, i++ 차이가 없나요??
Forums:
이경우는 차이가
이경우는 차이가 없습니다.
전위연산자(++i)와 후위연산자(i++)는 값을 반환하고 1을 더하느냐, 더하고서 반환하느냐의 차이인데, 이경우는 반환된 값은 쓰이지 않고 1을 더하는 효과만을 이용하는 것이니까요.
int i=0; int a = ++i;와 int i=0; int a = i++;의 경우는 전자는 a=1, 후자는 a=0이라는 차이가 있지만, 최종적으로 i는 1이되고, a는 버리는 셈인거죠.
참고로 C가 아니라 C++이 되면 그외의 차이가 생길수있습니다.
후위연산자는 우선 값을 반환하고 더하기때문에 이때 반환하는 것은 복사된 임시객체가됩니다.
따라서 덩치가 큰 객체에 대해서 ++연산자를 오버로딩할 경우 전위연산자가 후위연산자보다 효율이 좀더 좋을수 있습니다.
댓글 달기