서로 다른 타입의 변수들을 하나의 단위로 묶어 관리하는 사용자 정의 자료형
struct Student
{
string name;
int age;
}; // 세미콜론 필수
Student s1;
s1.name = "철수";
s1.age = 10;
Student s2 = { "영희", 11 };
Student s3 = {}; // 모든 멤버를 기본값으로 초기화
C언어에서는 구조체 변수를 만들 때 매번 struct를 붙이기 번거로워 typedef를 사용했음
// C언어에서 정석적인 구조체 선언
struct Student
{
string name;
int age;
};
struct Student s1; // 반드시 struct를 붙여야 함
// C언어에서 흔히 쓰는 방식
typedef struct
{
string name;
int age;
} Student; // struct Student 대신 Student만 써도 됨
Student s2; // C++에서는 typedef 없이도 이렇게 쓸 수 있어 사용 빈도가 줄었음
구조체의 실제 크기는 멤버 변수 크기의 단순 합계보다 클 수 있음