1. 구조체란?

구조체(structure type)란 사용자가 C언어의 기본 자료형을 가지고 새로운 자료형을 정의할 수 있는 **사용자 정의 자료형(user defined data type)**입니다.

구조체는 기본 자료형으로는 나타낼 수 없는(혹은 불편한) 복잡한 데이터를 표현할 수 있습니다.

배열이 같은 자료형의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 자료형으로 나타낸 것입니다.

이때 구조체를 구성하는 자료형들을 구조체의 멤버(member) 또는 멤버 변수(member variable)라고 합니다.


2. 구조체의 선언

struct 구조체이름
{
    멤버변수의 자료형 멤버변수1의이름;
    멤버변수의 자료형 멤버변수2의이름;
};

구조체를 선언하면 멤버 변수들을 같은 장소에서 관리 할 수 있기 때문에 유용합니다.

더불어 구조체도 ‘하나의 자료형’이기 때문에 또 다른 구조체의 멤버나, 심지어 스스로의 멤버 변수도 될 수 있습니다.


3. 구조체 멤버 변수로의 접근

배열에서는 인덱스를 이용하여 배열 요소에 접근할 수 있습니다.

하지만 구조체에서 구조체 멤버로 접근하려고 할 때는 멤버 연산자(.)를 사용해야 합니다.

구조체의_이름.멤버변수의_이름

<aside> 📮 구조체의 주소값과 구조체의 첫 번째 멤버 변수의 주소는 언제나 같습니다

</aside>

구조체 멤버가 포인터 자료형일 경우 연산자를 사용하여 배열 요소에 접근할 수 있습니다.

구조체의_이름->멤버변수의_이름