더듬이의 헬로월드

Hello, World!

프로그래밍 언어/C++ [기본]

[C++기본] 25.구조체 포인터

더듬이 2021. 9. 23. 19:09
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