해당 문제는.. 전치 연산자의.. 특징에 대한 것을.. 알고 있으면 되겠네요...
++i -> 요런.. 식으로 변수의 앞에 붙는 것을 전치연산자...
i++ -> 뒤에 붙는 것을 후치연산자...
이 둘의 차이는.. 간단한 예제를 직접 보는게.. 이해가 더 빠를 것 같네요..
i = 3, j = 0;
이런 상태라고 가정을 하구요...
1) j = ++i; -> 이렇게 하면... j 는.. 4 라는 값을 가지고,, i 역시 4 라는 값을 가집니다..
2) j = i++; -> 이렇게 하면... j 는.. 3 이라는 값을 가지고,, i 는 4 라는 값을 가집니다..
1) (전치연산자)의 경우는... 해당 작업을 수행하기 전에.. 변수 i 를 증가시키는 것이고..
2) (후치연산자)의 경우는... 해당 작업을 수행한 다음에... 변수 i 를 증가시키는 거죠..;;
c = ++a + ++a; 에서는.. 8이 나오는 게 당연합니다..
전치연산자는 해당.. 수식을.. 연산하기 전에.. a 값을.. 증가시키는 건데..
이 식에서는.. 앞의.. ++a 와.. 뒤의 ++a .. 두번 나와있죠... a 값은 2 증가해서.. 4 가 되어있습니다.
연산을 할때는... 4 + 4 의.. 형태가.. 되는거죠..^^;;.
참고하시길..^^;;
아치븐 님이 쓰신 글 :
: 죄송합니다... 6나오는거 맞고요..
:
: #include<stdio.h>
:
: void main()
: {
: int a=2,c;
: c = ++a + ++a;
: printf("%d\n",c);
: }
:
: 이 소스 입니다;;
:
: 이게 왜 8이 나올까요
|