배열 : 동일한 형태의 데이터를 모아서 하나의 자료로 표현
구조체 : 서로 다른 형태의 데이터를 모아서 하나의 자료로 표현
함수의 리턴형이나 매게변수로 구조체 변수를 바로 보내게 되면, 함수가 호출될때 마다 구조체의 크기만큼 메모리를 사용하게 된다.
이럴때 구조체 포인터를 활용하면 컴퓨터의 자원을 아낄 수 있다.
구조체를 정의할 때에는 다음과 같은 형식을 사용합니다. 이렇게 선언된 구조체명이 새로 만들어진
데이터형의 이름이됩니다. 즉, int char 와 같은 역할을 하게됩니다.
struct 구조체명 { 데이터형 변수명; ... }; 구조체는 struct 키워드를 선두에 명시한 후 사용할 구조체명을 적어서 정의합니다. 이 때 구조체
내부를 구성하는 데이터는 미리 정의된 데이터형으로 선언해야하고, 각 데이터는 " ; " 키워드로
분리해야합니다. 예를 들어 이름, 나이, 키, 몸무게와 같은 인적사항을 저장하는 People 이라는
구조체를 정의하면 다음과 같습니다. struct People { char name[20]; int age; double height; double weight; };
위에서도 말했듯이 구조체 내부의 데이터는 미리 정의된 데이터형이여야하기 때문에 char, int, double
등과 같은 기본 데이터형 외에 다른 구조체나 사용자가 따로 정의한 데이터형을 사용하고 싶으면
이 구조체보다 먼저 정의되어 있어야합니다.
일반적이지는 않지만 한번만 선언해서 사용하는 경우 아래와 같이 구조체명을 생략해서 사용하는
경우도 있습니다. 즉, 구조체를 정의함과 동시에 data 라는 변수를 선언하기 때문에 이 데이터형을
다시 사용할 필요가 없다면 구조체명도 필요없기 때문에 생략 가능합니다.
struct { char name[20]; int age; double height; double weight; } data;