연습하려고 아래처럼 일단 짜봤습니다.. 그런데...


#include <stdio.h>


struct b

{

int age;

int weight;

};

typedef struct b TEST;


int main()

{

TEST mine[3]={{11,12},{22,23},{33,34}};

TEST *ptr;

ptr=mine;


printf("%d %d ", *ptr, ++ptr);

return 0;

}


printf에서 보면 *ptr은 해당 배열의 첫번째 원소인 11을 가리켜야 합니다. (당연한 사실)

또한 뒤에 있는 ++ptr가 포인터연산을 했으므로 ptr주소의 다음주소를 출력합니다.


그런데 막상 실행시켜 보면

22 23

처럼 엉뚱한 값이 나옵니다......  이거 도대체 왜이런걸까요.....