a 가 구조체 변수일때, 이 변수의 맴버에 접근하려면 a.member
b 가 구조체 포인터일때, 이 포인터가 가르키는 공간의 맴버에 접근하려면 b->member
b 가 구조체 포인터일때, *b 는 포인터가 가르키는 공간을 의미하므로, (*b).member 와 같고
c 가 구조체 배열이라면, *(c+0) 은 포인터가 가르키는 공간을 의미하므로 (*(c+0)).member
그런데 *(c+0) 은 c[0] 과 같으므로, c[0].member
또한 (c+0) 은 포인터이므로 (c+0)->member 로 접근해도 같음
p가 구조체를 가리키는 포인터이고 m이 멤버일 때
(*p).m 은 p->m과 같다.
struct tag_Friend {
char Name[10];
int Age;
double Height;
};
void main()
{
tag_Friend Friend;
tag_Friend *pFriend;
pFriend=&Friend;
strcpy(pFriend->Name,"홍길동"); //포인터변수 pFriend가 가리키는 공간의 Name
pFriend->Age=30; //포인터변수 pFriend가 가리키는 공간의 Age
pFriend->Height=178.2; //포인터변수 pFriend가 가리키는 공간의 Height
printf("이름=%s, 나이=%d, 키=%.1f\n",
pFriend->Name,pFriend->Age,pFriend->Height);
}
'C,C++' 카테고리의 다른 글
visual studio 줄번호 (0) | 2014.04.26 |
---|---|
c언어 헤더 (0) | 2014.04.26 |
LINK : fatal error LNK1123 (0) | 2014.04.09 |
dev c++ 창 바로 닫히는 문제 (0) | 2013.06.24 |
MFC 프로그래밍 error 1. TextOut (0) | 2013.06.22 |