|
함수를 호출할때는 스택 정리를 호출한쪽이 하는가 호출 당한쪽이 하는가...라는것과 인자를 오른쪽부터 전달할것인가..왼쪽부터 전달할 것인가..등이 있습니다.
일반적으로 함수에서 인자 전달은 오른쪽에서 왼쪽으로 진행합니다.
자~ 따라하세요~~
printf("i = %d, i++ = %d, ++i = %d\n", i, i++, ++i);
오른쪽부터 따져보면... ++i은 11이고 i++은 11로 표현되지만 연산 수행후 12가 됐으니 i는 12
그러므로 출력은 12 11 11
3번째도 같은 이유...
김학래 님이 쓰신 글 :
: #include<stdio.h>
:
: main()
: {
: int i, j, m, n;
: i = j = m = n = 10;
: printf("i = %d, i++ = %d, ++i = %d\n", i, i++, ++i);
: printf("j = %d, j+1 = %d, j+2 = %d\n", j, j+1, j+2);
: printf("m = %d, m-- = %d, --m = %d\n", m, m--, --m);
: printf("n = %d, n-1 = %d, n-2 = %d\n", n, n-1, n-2);
: }
:
: 여기에서 결과값이
:
: 첫번째 12 11 11
: 두번째 10 11 12
: 세번째 8 9 9
: 네번째 10 9 8
:
: 이렇게 나오는데요.....첫번째랑 세번째가 왜 저렇게 나오는지
:
: 자세히 설명좀 해주세요......
:
: 도저히 이해가 안되네요 ㅜㅜ
:
|