본문 바로가기
C++/구조체

[C++] 구조체란 무엇인가

by bigpicture 2022. 8. 16.
반응형

구조체가 필요한 이유

문자형과 숫자형 자료형만 있는 상황을 떠올려봅시다. 변수에는 문자 하나 또는 숫자 하나만 입력이 가능합니다. 10명의 키 데이터를 입력하고 싶다고 합시다. 숫자형 자료형만 있다면 변수 10개를 선언해야 합니다. 이와 같이 비슷한 자료를 편하게 저장하기 위해 만든 자료구조가 '배열'입니다. 배열을 이용하면 아래와 같이 10명의 키를 쉽게 입력할 수 있습니다. 

int height[10]={187,167,176,...};


만약 서로 다른 형태의 자료를 묶어서 관리하고 싶은 경우는 어떻게 해야 할까요? 예를 들면 각 사람 별로 성별, 나이, 직업, 키, 몸무게를 묶어서 관리하고 싶은 것입니다. 이런 상황을 위해 만들어진 자료구조가 구조체입니다. 

 

구조체 정의하기

구조체는 일종의 서식이기 때문에 기본 구조를 선언해놓고 가져다 사용합니다. 사람의 성별, 나이, 직업, 키, 몸무게를 관리하는 구조체를 아래와 같이 선언할 수 있습니다. 

struct person
{
    char sex;
    int age;
    char job[20];
    float height;
    float weight;
};


정의해 놓은 구조체를 이용하여 한 사람의 데이터를 입력해봅시다. 사람 이름은 kim 이라고 하고 성별,나이,직업,키,몸무게는 남자,28세,선생님,178,68 이라고 가정합시다. 아래와 같이 구조체를 초기화할 수 있습니다. 

int main()
{
    struct person kim={'M',28,"teacher",178,68};
};


kim이라는 이름의 person 구조체를 선언했습니다. 아래는 전체 코드입니다. 

 

#include <iostream>
#include <cstring>

using namespace std;


struct person
{
    char sex;
    int age;
    char job[20];
    float height;
    float weight;

};
    
    
int main()
{
    struct person kim={'M',28,"teacher",178,68};
    
}

 

구조체 맴버에 접근하기

구조체 안의 각 원소들은 '맴버'라고 부릅니다. 구조체 맴버에 접근하는 방법은 아래와 같습니다. 

 

구조체이름.맴버이름

 

위에서 정의한 person 구조체의 age를 출력하고 싶다면 아래와 같이 선언하면 됩니다. 

 

cout<<person.age<<endl;

 

반응형

'C++ > 구조체' 카테고리의 다른 글

[C++] 구조체 안에 함수 정의하기  (0) 2022.08.18
[C++] 구조체 배열이란 무엇인가  (0) 2022.08.17

댓글