2016/07/31 - [IT/C언어] - 19-1 C 언어의 구조체의 기초 예제!
이번 시간에는 구조체에 접근 할 수 있는 포인터 변수를 선언하는 방법에 대해 알아보도록 하겠습니다! 구조체 변수의 포인터 변수를 알아보기 전에! 구조체 변수의 주소 값의 특징에 대해 알아보도록 할게요! 구조체 변수의 주소 값은 그 구조체의 첫 번째 멤버의 주소 값과 똑같아요! 저번 시간 구조체를 예를 들자면 구조체 변수의 주소 값이 첫 멤버인 name의 주소값과 동일하다는 거죠! 이제 선언하는 법을 알아보도록 하겠습니다!
int num=4;
int *ptr = #
포인터 변수를 선언할 때 이렇게 선언했었죠! 구조체 변수의 포인터 변수도
struct pos pos1 = {"name", 5, 20};
struct pos *pptr = &pos1;
이렇게 선언하면 됩니다! 저번 시간에 배울 때 썼던 구조체 pos를 예로들어 봤는데요! 이렇게 포인터 변수를 선언할 수 있습니다! 이번엔 이렇게 선언해 놓은 포인터 변수에 접근하는 법을 알아보도록 하겠습니다!
strcpy((*pptr).name, "none");
(*pptr).xpos=10;
(*pptr).ypos=3;
이렇게 하면 됩니다! 하지만 밑에 두 개는 보통 이렇게 하지 않고
pptr->xpos=10;
pptr->ypos=3;
이렇게 해요! 이렇게 값의 저장이나 변경도 가능하지만 그냥 포인터 변수와 같이 연산도 가능합니다!
pptr->xpos += 1;
pptr->ypos -= 3;
이렇게 할 수 있다는 거죠! 그럼 x좌표는 1만큼 증가하고 y 좌표는 3만큼 감소하겠죠? 그리고 이런 포인터 변수는 구조체 안에서도 선언이 가능합니다!
struct pos {
char name[20];
int xpos;
int ypos;
struct pos *ptr;
};
이거는 나중에 자료구조를 공부할 때 링크드리스트라고 있는데요! 그 때 자세히 배우게 됩니다!
모르는 것은 댓글이나 쪽지로 남겨주시면 성심 성의껏 답변해드리겠습니다!! 댓글, 공감, 구독(이웃추가)는 블로거에게 큰 힘이 됩니다! 부탁드리면서 이번 포스팅을 마치도록 하겠습니다! 지금까지 딘또였습니다
'Develop > C' 카테고리의 다른 글
19-4 C 언어의 구조체 변형 열거형 예제 (0) | 2016.08.17 |
---|---|
19-3 C 언어의 구조체와 비슷한 공용체 예제 (0) | 2016.08.10 |
19-1 C 언어의 구조체의 기초 예제! (0) | 2016.07.31 |
18-5 C 언어 문자열 숫자 변환 atoi (0) | 2016.07.27 |
18-4 C 언어 문자열 비교 strcmp, strncmp 예제 (2) | 2016.07.24 |
댓글