반응형

구조체(4)

 

이번에는 구조체를 멤버로 가지는 구조체에 대해서 알아보자.

 

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

 

구조체도 다른 구조체의 멤버가 될 수 있다. (구조체도 자료형이라고 이해하면 쉽다.)

 

포인터도 구조체의 멤버가 될 수 있다. (포인터도 포인터 변수라고도 불리므로 하나의 변수이다.)

 

예를 들어서 학생을 나타내는 구조체에 생년월일을 추가해보자.

 

생년월일을 처리하기 위해 날짜를 나타내는 구조체를 새로 정의한다.

 

ex :

 

struct date
{
	int year;
	int month;
	int day;
};



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

struct student b;

 


 

 

위에 예시 문장을 보면, 구조체 date에는 year와 month, day라는 이름의 변수들이 선언됐다.

 

그리고 이 date 구조체를 student 구조체의 멤버에 추가한다.

 

student 구조체 안의 멤버 변수 a에 값을 대입하려면 다음과 같이 사용하면 된다.

 

ex :

 

b.a.year = 2000;

b.a.month = 03;

b.a.day = 29;

 


 

해석

 

위에 예시 멤버 참조 문장을 이미 이해한 사람도 있을 것이다.

 

student 구조체의 변수 이름은 b이다.

 

그리고 student 구조체의 멤버로 추가된 date 구조체 변수의 이름은 a이다.

 

그렇다면 위의 예시 문장은

 

구조체 student의 구조체 변수이자 멤버로 추가되어 있는 a라는 구조체 변수의 멤버들을 참조한다.

 


 

그렇다면 다음 구조체(4-1)에서 이에 대한 예시를 봐보자.

반응형

+ Recent posts