구조체를 사용하면 여러 개의 데이터를 한 변수에 넣을 수 있습니다.
형식:
struct (구조체 이름) {
(변수목록)
};
(구조체 이름) (변수 이름);//(구조체 이름)타입의 변수를 생성
+구조체를 만들면서 변수를 초기화하기
struct (구조체 이름) {
(변수목록)
}(변수 이름);
또는 구조체 이름을 생략하면서 구조체를 만들면서 초기화할 수 있습니다. 이러면 해당 구조체 이름이 없으므로 그 타입의 다른 변수를 정의할 수 없습니다.
struct {
(변수목록)
}(변수 이름);
예제 :
struct pack {
int num;
char ca;
};
pack a;
struct pack2 {
int num;
int num2;
}b;
struct {
int num,num2,num3;
}c;
구조체 변수를 정의하면서 초기값을 지정해 줄 수 있습니다. {초기값,초기값,…}형식으로 지정하는데 구조체를 만들 때 위에서부터 정의한 변수 순서대로 초기값이 지정됩니다.
pack d = {1, 'a'};
구조체 변수.변수 이름 형식으로 구조체 속의 변수를 참조합니다.
d.num = 2;//d의 num값을 2로 변경
그리고 구조체를 만들 때 변수의 초기값을 미리 지정할 수 있는데 이러면 구조체 변수를 초기화할 때 따로 초기값을 지정하지 않으면 그 값으로 초기화됩니다.
struct pack3 {
int num=2;
char ca='a';
}e;//e가 num값이 2,ca값이 a가 됩니다.
추가 : C언어에서는 구조체를 정의할 때 앞에 struct를 붙여야합니다.
struct pack a;
위의 문법은 C++에서만 지원하는 기능으로 struct를 생략하고 정의할 수 있습니다.
C언어에서도 struct를 생략하려면 다음과 같이 합니다.(typedef 참고)
typedef struct _pack {
int num;
char ca;
}pack;
pack a;