|
제가보기에는 다르게 출력되는 게 맞네요..
소스에 설명하였습니다
참고하세요
컴파일러마다 차이가 있는 지는 몰라도 제가 확인(볼랜드 c++)한 바로 는 아래의 설명대로임.
씨_java 님이 쓰신 글 :
: #include <stdio.h>
:
: int main()
: {
: int a, b, c = 0;
: a = ++c; <- a에 c값을 증가시킨후에 a에 값을 넣는다.(1이 되겠죠..)
: c = c++; <- c에 c에 있는 값 (1)을 넣은 후 c값을 다시 증가시킴(c는 2가 됨)
: /* b = c++; */ <- b에 c에 있는 값(2)를 넣은 후 c를 증가시킴.(c는 3이 됨)
: printf("%d %d \n", a, c); /* printed 1 2 */ <- 1 3이 출력되는게 맞음.
: /* printf(" %d %d \n", a, b) /* printed 1 1 */ <- 1 2가 출력됨
: /* 여기 차이점을 모르겠습니다 */
: getch();
: return 0;
: }
: * c = c++; 와 b = c++; 증감연산을 했을때 값이 다릅니다.
: 차이점은 메모리에 저장된 변수 값을 변경하는것 같은데 확실히
: 이해가 가지 않습니다. 설명 좀 부탁드리겠습니다.
|