ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 9장. 구조체에 대하여
    C++ 기본 문법 알아보기 2019. 1. 12. 17:21

    구조체란?


    구조체는 여러 가지 정보를 한 곳에 담는 틀의 역할을 한다.


    프로그래밍에 있어서 지향해야 할 것 중 하나가 "관련된 정보끼리 그룹화 하는 것"이다.


    이렇게 말로만 들으면 설명이 어려울 것이다.


    예제를 보고 이해하자.


    struct Human // 구조체의 이름

    {

    char bloodType; // 구조체 안의 변수들

    int age; 

    float height;

    }; // 세미콜론 주의


    int main()

    {

    Human h1; // 구조체 변수 선언

    Human h2;


    return 0;

    }


    위에서 구조체를 정의한 것은 붕어빵의 틀을 만든 것이고 구조체 변수 선언은 그 틀을 이용해서 만든 붕어빵으로 이해하면 쉽다.


    그렇다면 이제 구조체 안의 멤베들에 접근하는 법을 알아보자.


    #include <iostream>

    using namespace std;


    struct Human

    {

    char bloodType; 

    int age; 

    float height;

    };


    int main()

    {

    Human h1; 

    Human h2;


    h1.bloodType = 'A';

    h1.age = 19;

    h1.height = 183.7f;


    h2.bloodType = 'O';

    h2.age = 44;

    h2.height = 156.5f;


    cout << "혈액형 : " << h1.bloodType << "\n";

    cout << "나이 : " << h1.age << "\n";

    cout << "키 : " << h1.height << "\n\n";

    cout << "혈액형 : " << h2.bloodType << "\n";

    cout << "나이 : " << h2.age << "\n";

    cout << "키 : " << h2.height << "\n\n";


    return 0;

    }



    .을 사용해서 구조체의 멤버에 접근하는 것을 볼 수 있다.


    이렇게 구조체의 멤버 변수에 접근해서 값을 넣어보았다.


    하지만 구조체도 선언과 동시에 초기화 할 수 있다!


    배열과 비슷한 방법이니 예제를 보면 금방 이해 할 것이다.


    #include <iostream>

    using namespace std;


    struct Human

    {

    char bloodType; 

    int age; 

    float height;

    };


    int main()

    {

    Human h1 = { 'A', 19, 183.7f }; 

    Human h2 = { 'O', 44, 156.7f };


    cout << "혈액형 : " << h1.bloodType << "\n";

    cout << "나이 : " << h1.age << "\n";

    cout << "키 : " << h1.height << "\n\n";

    cout << "혈액형 : " << h2.bloodType << "\n";

    cout << "나이 : " << h2.age << "\n";

    cout << "키 : " << h2.height << "\n\n";


    return 0;

    }


    정상적으로 같은 출력 값이 나오는 것을 볼 수 있다.


    구조체의 초기화 역시 선언 때가 아니면 할 수 없음을 알아두자.



    구조체의 대입


    그런데 구조체는 배열과 다르게 직접 대입이 가능하다.


    예제를 보자!


    #include <iostream>

    using namespace std;


    struct Point

    {

    int x;

    int y;

    };


    int main()

    {

    Point p1 = { 10, 20 };

    Point p2 = p1;


    cout << "p1 = ( " << p1.x << ", " << p1.y << " )\n";

    cout << "p2 = ( " << p2.x << ", " << p2.y << " )\n";


    return 0;

    }



    유용한 기능이니 알아두자.


    다음 글에서는 C언어와 C++의 꽃인 포인터에 대하여 알아보자.

    'C++ 기본 문법 알아보기' 카테고리의 다른 글

    10장. 포인터 변수란?  (0) 2019.02.15
    8장. 배열에 대하여  (0) 2019.01.11
    7장. 반복문  (0) 2019.01.10
    6장. 조건문이란?  (0) 2019.01.09
    5-2장. 비트 단위 연산자와 연산자 마무리  (0) 2019.01.08
Designed by Tistory.