구조체 포인터

개념

  • Structure Pointer
  • 기본 자료형의 포인터와 동일하게, 구조체의 포인터를 선언할 수 있다.

문법

1
struct 구조체명 *포인터변수명;

예시

1
2
3
4
5
6
7
8
9
typedef struct {
  char name[10];
  int age;
  float height
} Person;

Person person = {"김철수", 32, 188.5f};
Person *pPrsn;
pPrsn = &person;

구조체 포인터의 멤버 참조

. 연산자를 이용한 참조

  • . 연산자를 이용해 멤버 참조를 할 수 있다.
  • . 연산자의 우선순위가 * 연산자보다 높으므로, 괄호가 필요하다.
1
2
3
4
5
6
Person person = {"김철수", 32, 188.5f};
Person *pPrsn;
pPrsn = &person;

printf("%s, %d, %f\n", (*pPrsn).name, (*pPrsn).age, (*pPrsn).height);
// 출력 : 김철수, 32, 188.5

구조체 포인터 멤버 액세스 연산자 ->를 이용한 참조

  • -> 연산자를 이용해 구조체 포인터에서 멤버를 참조할 수 있다.
1
2
3
4
5
6
Person person = {"김철수", 32, 188.5f};
Person *pPrsn;
pPrsn = &person;

printf("%s, %d, %f\n", pPrsn->name, pPrsn->age, pPrsn->height);
// 출력 : 김철수, 32, 188.5

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments