구조체의 필요성부터 설명드리면, 데이터 관리를 편하게 하기 위해서 필요합니다.
char p1_name[20];
int p1_age;
char p1_address[100];
char p2_name[20];
int p2_age;
char p2_address[100];이런식으로 이름과 나이 주소를 가지는 사람을 정의했다고 하면 구조체가 없으면 하나하나 다 지정해서 변경해주고 해야됩니다. 굉장히 비효율적입니다.
struct Person { // 구조체 정의
char name[20]; // 구조체 멤버 1
int age; // 구조체 멤버 2
char address[100]; // 구조체 멤버 3
}
Struct Person p1;이런식으로 멤버를 변경하거나 사용할 수 있습니다.
struct Person p[3];그리고 이런식으로 배열로 관리하기 편해집니다.
컴파일에 알려주는 이유는 얼만큼 메모리를 사용할 것이니 컴퓨터에게 알려줘야 되기 때문입니다.
멤버를 사용하는 방법은
p1.name = "홍길동";. 으로 멤버 접근 할 수있고, 변경할 수 있습니다.