C 언어에서 중첩 구조체 사용하기

  • 2 minutes to read

이 글에서는 C 언어에서 중첩 구조체를 사용해 회원 정보와 점수 정보를 저장하고 출력하는 방법을 보여드립니다. 예제 프로그램의 이름은 nested_struct_example.c입니다.

소스 코드: nested_struct_example.c

예제 프로그램의 전체 소스 코드는 다음과 같습니다:

/*
	중첩 구조체 : nested_struct_example.c
*/
#include <stdio.h>

typedef struct Subject
{
	int Kor;
	int Eng;
} Subject;

typedef struct Member
{
	int Num;
	char Name[25];
	Subject Score;
} Member;

int main()
{
	Member objMember = { 1, "홍길동", {100, 80} };

	Member* p;
	p = &objMember;

	printf("번호: %d\n", objMember.Num);
	printf("이름: %s\n", objMember.Name);
	printf("국어점수: %d\n", objMember.Score.Kor);
	printf("영어점수: %d\n", p->Score.Eng);

	return 0;
}
번호: 1
이름: 홍길동
국어점수: 100
영어점수: 80

코드 설명

Subject 구조체는 국어 점수와 영어 점수를 저장하기 위한 두 개의 정수형 변수를 포함합니다. Member 구조체는 회원 번호, 이름, 그리고 Subject 구조체를 이용한 점수 정보를 담습니다. 이렇게 중첩 구조체를 활용하면 관련 정보를 그룹화하여 코드를 더 명확하고 관리가 쉬워집니다.

main() 함수에서는 Member 타입의 변수 objMember를 선언하고 초기화합니다. 또한, Member 구조체 포인터 p를 선언한 후 objMember의 주소를 대입합니다. printf() 함수를 사용하여 objMember의 각 필드를 출력하며, 영어 점수는 포인터 p를 이용해 출력합니다.

이 프로그램은 중첩 구조체를 사용하여 회원 정보와 점수 정보를 저장하고 출력하는 간단한 예제를 보여줍니다. 중첩 구조체를 사용함으로써 코드의 가독성과 유지 보수성이 향상됩니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com