프로그래밍/겁나 쉽게 쓴 C, C++ 설명서

구조체란?

tonystark100 2024. 5. 2. 23:09

목차

    반응형

    구조체란?

    반응형

    C언어에서 구조체(structure)는 서로 다른 타입의 변수들을 하나의 묶음으로 관리할 수 있게 해주는 사용자 정의 데이터 타입입니다. 구조체는 관련된 정보를 그룹화하여 코드의 가독성과 유지 보수성을 향상하는 데 유용합니다.

    struct struct_name {
        type1 member1;
        type2 member2;
        type3 member3;
        ...
    };

     

    여기서 struct_name구조체의 이름을 나타내며, type1, type2, type3 등은 각 멤버의 데이터 타입을 나타냅니다. member1, member2, member3 등은 구조체의 멤버 변수 이름을 나타냅니다.

     

     

    로또로 화성 - Google Play 앱

    간편한 로또 번호 생성 및 QR 결과 확인 어플입니다.

    play.google.com

     

    구조체 예시

    예를 들어 학생의 이름, 나이, 그리고 학점을 저장하는 구조체를 선언하려면 다음과 같이 작성할 수 있습니다.

    struct Student {
        char name[50];
        int age;
        float gpa;
    };


    이제 struct Student 타입의 변수를 선언하고 사용할 수 있습니다.

    struct Student s1;
    strcpy(s1.name, "John Doe");
    s1.age = 20;
    s1.gpa = 3.5;

     

    구조체 제어 방법

    C언어에서 구조체의 멤버에 접근하기 위해서는 점(.) 연산자를 사용합니다. 점 연산자는 구조체 변수와 그 멤버 사이에 위치하며, 구조체의 멤버에 접근하는 데 사용됩니다.

    Student 구조체의 인스턴스를 생성하고 멤버에 접근하는 방법은 다음과 같습니다.

    struct Student s1;
    
    // 멤버에 접근하여 값을 할당
    strcpy(s1.name, "John Doe");
    s1.age = 20;
    s1.gpa = 3.5;
    
    // 멤버에 접근하여 값을 출력
    printf("Name: %s\n", s1.name);
    printf("Age: %d\n", s1.age);
    printf("GPA: %.2f\n", s1.gpa);

     

    또한 구조체 포인터는 구조체 변수의 주소를 저장하는 변수입니다. 이를 통해 구조체의 멤버에 간접적으로 접근할 수 있습니다. 이 경우에는 화살표(->) 연산자를 사용합니다. 구조체 포인터를 선언하는 방법은 다음과 같습니다.

     

    struct struct_name *pointer_name;

    여기서 struct_name은 구조체의 이름을 나타내며, pointer_name은 포인터의 이름을 나타냅니다.

     

     

    Student 구조체의 포인터를 선언하고 사용하는 방법은 다음과 같습니다.

    struct Student s1;
    struct Student *p = &s1;
    
    // 포인터를 사용하여 멤버에 접근하여 값을 할당
    strcpy(p->name, "John Doe");
    p->age = 20;
    p->gpa = 3.5;
    
    // 포인터를 사용하여 멤버에 접근하여 값을 출력
    printf("Name: %s\n", p->name);
    printf("Age: %d\n", p->age);
    printf("GPA: %.2f\n", p->gpa);

     

    이처럼 구조체를 사용하면 서로 관련된 여러 개의 변수를 하나의 묶음으로 관리할 수 있습니다. 이는 코드의 가독성과 유지 보수성을 향상하는 데 도움이 됩니다.

     

    다음 글 C++ 기초 공사

     

    ** 이 글이 좋았다면 좋아요와 구독을 눌러주세요. **

    반응형

    '프로그래밍 > 겁나 쉽게 쓴 C, C++ 설명서' 카테고리의 다른 글

    if문과 switch문의 비교  (0) 2024.05.01
    조건문이란? if, switch  (0) 2024.05.01
    C언어의 연산자  (0) 2024.05.01
    함수 매개변수 전달 방식  (0) 2024.04.30
    함수란?  (0) 2024.04.30