[C++] 13강 구조체



안녕하세요~ 뉴기니아입니다!

오늘은 구조체에 대해서 배워보겠습니다.


구조체란?

- 이름에서 느껴지듯이 어떤 구조를 가진 데이터 형식을 일컫습니다. 


예를 한번 들어볼까요??



자 여기 학생들의 이름학번을 입력받는 프로그램이 있다고 가정합시다.

이렇게 입력받을 거에요!


학생 한 명은 이렇게 해도 되지만 만약에 학생이 100명이면요?

그리고 이름과 학번에 더해서 나이와 주소까지 입력받는다고 하면요?


Don't do that.


저는 이 4가지 정보(이름, 학번, 나이, 주소)를 하나의 변수로 담아주고 싶습니다.

Why? 관리하기 쉬우니까요

여기서 구조체가 진가를 발휘합니다.



구조체의 구조

- 영어로 structure하면 구조, 건축물이라는 뜻이죠? 바로 거기서 파생된 단어입니다.


예를 들어 설명해드리겠습니다.


위의 코드는 Student라는 이름의 구조체이고, 이는 멤버 변수로 name, id, age, addr을 갖습니다.

구조체 안에 변수라는 것을 명시하기 위해 변수 이름 끝에 _를 붙이겠습니다 ㅎㅎ



자 이제 처음 문제로 넘어가서 100명의 학생들의 정보를 받는다고 가정해봅시다.

대충 코드가 그려지시나요?





typedef struct : 나만의 구조체 만들기, 구조체 설명

- 프로그래밍을 하다보면 자료구조를 많이 이용하게 됩니다.

구조체도 일종의 자료구조의 일종인데요, 거대한 프로그램을 만질 때 Student같이 선언해버리면

막연한 학생이지 이 Student 구조체가 어떤 것을 의미하는 지 모르는 경우가 있는데요!

이 때 typedef struct가 그 답을 제시합니다.


우리 교실에 있는 남학생 구조체를 만들고 싶어! 라고 할 때,



이렇게 선언할 수 있지만

자료형이 길죠? 그래서 빨간색 네모친 부분에 별명을 붙여줍니다.



저 같은 경우는 지금 MSTUDENT라고 붙여주었습니다.

따라서 main함수에서 선언할 때 MSTUDENT라고 선언하시면 됩니다.



조금 더 응용해서 pointer 별명도 붙여줄 수 있답니다 ㅎㅎ

이는 어려우니까 나중에 다뤄보도록 할게요!!


이상 구조체 설명이었습니다!

'💻 Computer Science > C,C++' 카테고리의 다른 글

[C++] 반올림, 올림, 내림, 버림  (0) 2021.01.24
[C++] 소숫점 표현하기(유효숫자)  (0) 2021.01.24
[C++] 12강 함수  (0) 2020.08.06
[C++] 11강 반복문 for, while, do while  (0) 2020.08.06
[C++] 10강 switch문  (0) 2020.08.06