C 언어에서 중첩 구조체 사용하기
추천 자료: ASP.NET Core 인증 및 권한 부여
이 글에서는 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
를 이용해 출력합니다.
이 프로그램은 중첩 구조체를 사용하여 회원 정보와 점수 정보를 저장하고 출력하는 간단한 예제를 보여줍니다. 중첩 구조체를 사용함으로써 코드의 가독성과 유지 보수성이 향상됩니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!