구조체 a를 선언과 동시에 초기화하고 구조체 b는 선언만 하였습니다. 대입 연산자(=)를 통해 a 구조체 멤버 변수들의 값이 b 구조체 멤버 변수로 복사가 되었음을 확인할 수 있습니다.
구조체를 이루고 있는 것은 멤버 변수입니다. 예를 들어 사람에 대한 구조체를 만들고자 한다고 가정하겠습니다. 구조체는 개발자가 스스로 정의하는 것이므로 같은 대상의 구조체라도 정의한 개발자에 따라 달라질 수 있습니다.
즉, 사람에 대한 구조체라 하더라도 개발자 A와 개발자 B가 정의한 내용은 다를 수 있습니다. 그러므로 A 개발자가 사람에 대한 구조체를 이름과 키로 모델링(modeling)해서 정의할 수 있고, B 개발자는 이름과 몸무게로 모델링해서 정의할 수 있는 것입니다.
Tip
’모델링’이란 어떤 형태나 현상을 특정한 목적에 맞추어 이해하기 쉽거나 이용하기 쉬운 형태로 표현하는 것입니다. 구조체를 정의하는 것도 이러한 모델링 중 하나라고 할 수 있습니다.
구조체의 멤버 변수 안에는 C 언어에서 기본으로 사용하는 자료형인 int, double, char뿐만 아니라 배열과 포인터도 멤버 변수로 사용할 수 있습니다. 심지어 구조체 안에 또 다른 구조체를 멤버 변수로 정의할 수도 있습니다.