c언어 구조체 정의에 대해서 궁금한점이 있습니다
struct STU{
char name[30];
int id;
} s;
이러한 구조체 정의 다음에 struct STU a[10]; 이런식으로 배열형식의 변수도 선언할 수 있는건가요? 궁금합니다!
55글자 더 채워주세요.
2개의 답변이 있어요!
네. 당연히 됩니다. 직접 해 보면 바로 알 수 있는걸요... ㅠㅠ
struct STU { char name[30]; int id; } s; struct STU a[10];구조체든 공용체든, 어떤 타입이라도 배열은 만들 수 있습니다.
네 가능합니다. 구조체를 배열로 선언하면 구조체 크기만큼 메모리의 크기를 연속적으로 사용하므로 이점을 잘 계산해서 사용해야 합니다.
프로그래밍을 하다 보면 설계상 새로운 데이터형이 필요할 때가 있고 이때 사용하는게 구조체입니다.
구조체는 데이터의 크기가 정해져 있는 정적 데이터들의 집합으로 전체적인 데이터 크기가 구조체 구성 요소들의 합으로 고정됩니다.
배열은 메모리에 고정된 데이터 크기를 가진 데이터 공간을 연속적으로 여러개 잡아 놓는 것입니다.
따라서 고정적인 데이터 공간을 가진 구조체 또한 배열로 선언할 수 있으며 이때 메모리는 구조체의 전체 데이터 크기 만큼의 공간을 연속적으로 사용하게 됩니다.