사용자 정의 자료형 : 프로그래머의 필요에 따라 직접 만들어서 사용하는 자료형

자료 타입에 해당하는 키워드를 반드시 삽입하여 자료형을 제작해야 함

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++부터 가능해짐

**구조체의 메모리 할당

  • 가장 큰 멤버 변수의 크기를 기준으로 메모리 할당
  • 효율적으로 메모리를 쓰기 위해서는 작은 크기의 변수들을 먼저 선언하면 좋다