본문 바로가기

C, C++

구조체

구조체를 사용하면 여러 개의 데이터를 한 변수에 넣을 수 있습니다.

형식:

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;

'C, C++' 카테고리의 다른 글

구조체 정렬 및 원리  (0) 2019.11.29
비트 구조체  (0) 2019.11.28
main 함수  (0) 2019.11.26
문자, 문자열  (0) 2019.11.26
다중 배열  (0) 2019.11.26