후치연산,전치연산 출력 결과 질문이요!
Addictive
c3 = c2++;
c3.getValues(theAge, theWeight);
cout c3=2++ theAge : theAge , theWeight : theWeight \n \n;
c3 = --c2;
c3.getValues(theAge, theWeight);
cout c3=--c2 theAge : theAge , theWeight : theWeight \n \n;
c3 = c2--;
c3.getValues(theAge, theWeight);
cout c3=c2-- theAge : theAge , theWeight : theWeight \n \n;
여기서 c2 객체의 값이(2,2)였을때 위에 3개의 결과값이 모두 2가 나오는게 맞나요...??
처음에 (2,2) 였는데 후치증가니까 일단 2,2 출력되고 3,3 인된 상태에서 2번째 전치연산이 실행된 결과가 출력되서 또 2,2 가 나오고 마지막 c3=c2-- 에서 후치 감소니까 그대로 2,2 이렇게 출력되니까
세개모두 2,2,가 나오는게 맞는거죠....?
-
모든
감사합니다^^
-
물보라
네 맞아요.
그래서 위에서
c3 = c2++;
는 c2의 값이 1증가하기 전의 값이 c3에 대입될꺼구요,
c3 = --c2;
는 위에서 c2의 값이 1증가했는데 전위연산으로 1이 감소한 값이 c3에 대입될겁니다.
마지막
c3 = c2--;
도 c2가 1감소되기 전의 값이 나오겠죠.
결과적으로 세 출력값은 모두 같게 됩니다.
프로그래밍 하실때 저걸 코드라고 생각하지 마시고 글이라고 생각하시면서 읽어보세요.ㅋ 그러면 더 코딩하기 쉬울꺼에요. -
영빈이
printf(%d, c--);
와
printf(%d, --c);
는 각각 3, 2가 나오죠.
이 부분은 c의 기본값이 3이였는데 c--는 후치연산이니까 감소되기전값인 3이 나오는 것이고 밑에는 값이 먼저 감소된다음에 출력되니까2가 되는거 아닌가요...? -
꽃봄
전 전위연산, 후위연산 이렇게 썼는데 전치 후치라고도 쓰는군요.
변수를 c라고 치고 기본 값이 3이라면
c--;
printf(%d, c);
와
--c;
printf(%d, c);
은 출력시 똑같이 2가 나옵니다.
하지만
printf(%d, c--);
와
printf(%d, --c);
는 각각 3, 2가 나오죠.
왜 인지는 한번 생각해보세요.ㅋ
저는 C++을 잘 못한는지라 C로 적었어요 ㅠ