IT기초/C 언어

[c언어] 구조체 (struct) 사용 방법 - 예제 코드 포함

ITtechRoy 2023. 9. 6. 08:44
728x90
반응형

C 언어로 구조체 활용하기 - 초급 예제

이 예제에서는 C 언어에서 구조체를 정의하고 활용하는 방법을 알아보겠습니다. 구조체는 여러 데이터를 묶어서 관리하는 데 유용합니다.

예제 1: 구조체 정의와 사용

구조체를 정의하고 변수에 값을 할당하여 출력하는 C 프로그램의 예제 코드입니다:

#include 

// 구조체 정의
struct Student {
    char name[50];
    int age;
    double gpa;
};

int main() {
    // 구조체 변수 생성
    struct Student student1;

    // 값 할당
    strcpy(student1.name, "John");
    student1.age = 20;
    student1.gpa = 3.5;

    printf("학생 정보:\n");
    printf("이름: %s\n", student1.name);
    printf("나이: %d\n", student1.age);
    printf("평균 성적: %.2lf\n", student1.gpa);

    return 0;
}
    

예제 2: 구조체 배열 사용

구조체 배열을 선언하고 여러 학생의 정보를 저장하고 출력하는 C 프로그램의 예제 코드입니다:

#include 

// 구조체 정의
struct Student {
    char name[50];
    int age;
    double gpa;
};

int main() {
    // 구조체 배열 생성
    struct Student students[3];

    // 값 할당
    strcpy(students[0].name, "Alice");
    students[0].age = 21;
    students[0].gpa = 3.8;

    strcpy(students[1].name, "Bob");
    students[1].age = 22;
    students[1].gpa = 3.9;

    strcpy(students[2].name, "Charlie");
    students[2].age = 20;
    students[2].gpa = 3.7;

    printf("학생 정보:\n");
    for (int i = 0; i < 3; i++) {
        printf("학생 %d:\n", i + 1);
        printf("이름: %s\n", students[i].name);
        printf("나이: %d\n", students[i].age);
        printf("평균 성적: %.2lf\n", students[i].gpa);
    }

    return 0;
}
    

예제 3: 구조체 포인터 사용

구조체 포인터를 사용하여 학생 정보를 입력하고 출력하는 C 프로그램의 예제 코드입니다:

#include 

// 구조체 정의
struct Student {
    char name[50];
    int age;
    double gpa;
};

int main() {
    // 구조체 포인터 생성
    struct Student *studentPtr;

    // 동적 할당
    studentPtr = (struct Student *)malloc(sizeof(struct Student));

    // 값 할당
    strcpy(studentPtr->name, "Eve");
    studentPtr->age = 19;
    studentPtr->gpa = 4.0;

    printf("학생 정보:\n");
    printf("이름: %s\n", studentPtr->name);
    printf("나이: %d\n", studentPtr->age);
    printf("평균 성적: %.2lf\n", studentPtr->gpa);

    // 메모리 해제
    free(studentPtr);

    return 0;
}
    
728x90
반응형