본문 바로가기

C,C++

화살표연산자

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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