반응형

구조체(3)

 

 

※ 구조체 멤버 참조 ※

 

지금까지 구조체를 정의하고 구조체 변수를 선언하는 방법을 알아봤다.

 

하지만 제일 중요한 것은 구조체 멤버 변수들을 참조하는 것이다.

 

구조체 변수를 통해서 멤버 변수들을 참조하려면 특별한 연산자가 필요하다.

 

구조체의 멤버 변수들은 멤버 연산자인 ' . '(닷 연산자)을 이용하여 접근할 수 있다.

 

구조체 변수 이름을 쓰고 멤버 연산자인 닷을 찍은 다음, 멤버 변수의 이름을 적어주면 된다.

 

ex :

형태 : 구조체변수이름.멤버이름

s1.number = 24;

 

해석 : s1의 number를 참조한다.

 

예를 들어 student라는 구조체 태그 이름을 가진 구조체 변수 s1의 멤버 변수 number에


24를 대입하려면, 다음의 문장처럼 하면 된다

 

ex : 

s1.number = 24;

 

해석

구조체 변수 s1의 int형 멤버 변수인 number에 24를 저장한다.

 

 

그리고 만약 멤버 변수가 문자열이라면 멤버 변수에 값을 대입할 때, strcpy 함수를 사용해야 한다.

 

ex :

strcpy(s1.name, "Kim");

s1.grade = 4.3;

 

해석

strcpy함수로 문자열을 구조체 변수 s1의 char형 배열 name에다가 복사해서 대입한다.

 


 

 

※ 이름 없는 구조체 ※

 

구조체를 정의할 때 태그 이름은 생략해도 무관하다.

 

하지만 이러한 경우 구조체의 이름이 없으므로 이 구조체의 변수를 더 이상 생성할 수 없다.

 

따라서 이 경우에는 필요한 모든 구조체 변수를 구조체 정의와 함께 선언해야 한다.

 

ex :

 

struct
{
	int number;
	char name[10];
	double grade;
} s1, s2, s3;

 

해석

 

구조체를 정의하지만 구조체의 이름이 없으므로 구조체 변수를 같이 선언해야 함으로써

 

구조체 변수 s1, s2, s3를 구조체 정의와 같이 선언했다.

 

 

만약 프로그램의 뒷부분에서 똑같은 구조체가 필요한 경우에는 구조체에 이름을 붙이지 않았기에

 

위의 정의를 다시 사용할 수 없어서 다시 구조체를 정의해야 한다.

 

-

 

다음 구조체(3-1)에서 예제들을 봐보고 해석해 보자.

반응형

+ Recent posts