반응형

구조체

 

 

※ 구조체란 ※

 

C에서 자료형은 기본 자료형과 파생 자료형으로 분류할 수 있다.

 

기본 자료형은 char, int, double과 같은 기본적인 자료형이다.

 

파생 자료형은 이들 기본 자료형에서 파생된 것으로,

 

배열, 포인터, 열거형, 구조체, 공용체 등을 들 수 있다.

 

구조체는 파생 자료형 중에서도 가장 일반적인 구조를 가진다.

 

구조체를 서로 다른 형태의 데이터를 결합시키는 아주 유용한 파생 자료형이다.

 

그렇다면 구조체를 한마디로 하면 뭘까?

 

구조체는 프로그래머가 여러 개의 자료형들을 묶어서 새로운 자료형을 만들 수 있는 방법이다.

 

참고로 구조체는 객체지향 프로그래밍에서 클래스의 모체가 된다.

 


 

 

※ 구조체의 선언, 초기화, 사용 방법 ※

 

구조체는 서로 다른 자료형의 변수들을 묶어서 새로운 자료형을 만드는 것이라고 했다.

 

구조체는 struct라는 키워드를 사용해서 선언한다.

 

ex : 

struct student
{
	int number;
	char name[10];
	double grade;
};

 

위 코드는 student라는 이름을 가지는 구조체를 선언한 것이다.

 

해당 구조체 안에는 int형 number변수와 char형 배열 name과 double형 grade가 포함되어있다.

 

참고로 struct 다음의 구조체 이름을 나타내는 student는 변수가 아니라 구조체 태그라고 불린다.

 

구조체 태그와 변수 이름은 다른 것이다.

 

구조체 태그는 구조체들을 구별하기 위해 붙여지는 이름이다.

 

그리고 태그 다음에 중괄호를 써주고 중괄호 사이에 원하는 변수들을 선언하면 된다.

 

위 코드에서 선언된 number, name, grade를 구조체 멤버라고 한다.

 

구조체 멤버는 구조체에 포함되는 변수이다.

 

어떠한 자료형의 변수도 구조체의 멤버가 될 수 있다.

 

구조체 안에 정의되는 변수들은 보통 변수들처럼 모두 구별되는 이름을 가져야 한다.

 

그리고 구조체를 정의하는 것도 하나의 문장에 해당하기 때문에 구조체의 정의가 끝나면

 

반드시 세미콜론을 붙여줘야 한다.

 

참고로 위의 구조체 선언은 변수 선언이 아니다.

 

구조체 선언은 구조체 안에 어떤 변수들이 들어간다는 것만 말해주는 것이다.

 

즉 위의 구조체 선언은 구조체의 형태만 정의한 것이다.

 

아직 구조체를 이용하여 변수를 만들지 않았다.

 

구조체도 하나의 자료형이라는걸 명심하자.

 


 

 

※ 구조체 선언 및 정의의 예시 ※

 

struct point
{
	int x; //x 좌표
	int y; //y 좌표
};

 


 

struct date
{
	int month; //월
	int day; //일
	int year; //년
};

 

 

 

반응형

+ Recent posts