728x90
구조체의 멤버
typedef struct Test {
int a;
float b;//멤버
}Myst;
일단 구조체의 형식을 다시 생각해보자.
Myst라는 자료형을 내가 만든 것이다!
Myst t1;
t1이 곧 Myst라는 형식의 변수가 되는 것이고,
Test 안에있는 a,b는 변수가 아닌 멤버(구조체의 멤버)가 되는 것이다.
t1.a;
즉, 이것은 t1이라는 변수의 a를 지칭하는 말이다.
구조체와 포인터
Myst s;
Myst *Pointer=&s;
그럼 구조체를 가리키는 포인터는 어떻게 계싼될까?
구조체는 하나의 자료형으로 묶여있기 때문에
int 4바이트, float 4바이트, 총 8바이트로 계산되는 포인터 변수가 나올 것이다.
그럼 각 멤버에 접근은 어떻게 해요?
(*point).a = 500;
(*point).b = 10.05f;
역참조 연산자를 이요해서 마찬가지로 접근하면 된다!!
단지 각 멤버에 접근만이 가능해졌을 뿐이지, 각 타입에 맞는 포인터를 선언해주어야 한다!
화살표 연산자
(*point).a = 500;
(*point).b = 10.05f;
point->a=500;
point->b=10.05f;
화살표 연산자는 각 멤버에 쉽게 접근하게 해주는 연산자이다.
역참조 후 각 멤버를 가리킨다고 보면 된다!
728x90
'프로그래밍 언어 > C++ [기본]' 카테고리의 다른 글
[C++기본] 27.가변 배열 (0) | 2021.09.23 |
---|---|
[C++기본] 26.동적 할당 (0) | 2021.09.23 |
[C++기본] 24.문자열-5 (0) | 2021.09.23 |
[C++기본] 23.문자열-4 (0) | 2021.09.23 |
[C++기본] 22.문자열-3 (0) | 2021.09.23 |