사용자 정의 자료형 : 프로그래머의 필요에 따라 직접 만들어서 사용하는 자료형
자료 타입에 해당하는 키워드를 반드시 삽입하여 자료형을 제작해야 함
c언어: 구조체(struct), 공용체(union), 열거체(enum) c++ : 구조체(struct), 공용체(union), 열거체(enum), 클래스
struct tagTest{
int Tmp;
float Dst;
char Src; -구조체 멤버 변수
};
int main(){
tagTest tTest={}; -구조체 변수 선언(초기화는 멤버 변수 순서대로)
cout<<tTest.Tmp; - .(멤버 접근 연산자)
tagTest tArr[3]; - 구조체 배열
tagTest* ptr; - 구조체 포인터
}
**구조체 포인터
tagTest* ptr1=&tTest;
cout<<ptr1->Tmp;
구조체 포인터로 구조체 멤버에 접근하기 위해서는 -> 연산자를 사용한다.
**typedef 구조체 선언
typedef struct tagTest{
}Test, *PTest;
c언어 시절에는 구조체안에 멤버 함수를 선언 할 수 없었지만 c++부터 가능해짐
**구조체의 메모리 할당
- 가장 큰 멤버 변수의 크기를 기준으로 메모리 할당
- 효율적으로 메모리를 쓰기 위해서는 작은 크기의 변수들을 먼저 선언하면 좋다