구조체의 정의
구조체란 ? 구조체는 다른 타입을 가지는 변수들을 하나의 이름으로 묶어둔 것이다.
배열이 타입이 같은 변수들의 집합인 것에 비해 구조체는 다른 타입을 가지는 변수들을 하나의 이름으로 묶어둔 것이다.
정수나 실수 또는 문자열 등의 단순한 형태로 나타낼 수 없는 복잡한 데이터를 표현할 때 주로 사용한다.
char Name[10];
int Age;
double Height;
각 변수들의 타입이 서로 다르기 때문에 배열로 이 변수들을 묶을 수는 없다 ---- 구조체 사용
구조체 멤버의 타입에는 제한이 없다. 심지어는 구조체 안에 구조체 타입을 선언해도 된다.
※ 멤버: 구조체에 포함되는 변수들
구조체는 단지 "구조체로 묶었으니 앞으로 이렇게 쓸거야" 라는 걸 컴파일러에게 일러준다.
변수가 아니므로 static, register같은 기억 부류를 지정한다든가 초기값을 줄 수 없다.
struct {
char Name[10];
int Age;
double Height;
} People; // 구조체 변수의 이름(임의로)
struct { } 블록안에 구조체에 포함되는 변수들의 목록(=멤버)을 순서대로 선언하고 구조체 변수의 이름을 끝에 적는다.
※(참고) 무조건 다른 타입이어야 구조체로 묶을 수 있는 건 아니다.
같은 타입이어도 묶을 수 있으며 이것이 용이할 때가 있다.
struct
{
int x,y;
} Point;
gotoxy(Point.x, Point.y);
gotoxy(Point[0], Point[1]);
배열을 쓰면 x좌표가 뭔지 y좌표가 뭔지 헷갈린다.