본문 바로가기

교육 노트/C++ 기초강의

[C++ 때려잡기] C++ 기초강의 4-1 간단한 구조체

2018/08/23 - [교육 노트/C++ 기초강의] - C++ 기초 강의 OT

4차 강의 제목은

배열과 포인터이다.


배열은 기존에 배웠던 그 배열이지만 더욱 심화로 배울것이고

마침내 C언어의 꽃이자 알파이자 오메가, 꿀잼 포인터가 테마이다

우리는 C++이지만 C++도 OOP전에는 사실상 핵심 개념이다.


하지만 그전에 머리도 식힐겸 간단한 구조체부터 설명하도록 하겠다.



1. 구조체

구조체란 하나 이상의 변수를 그룹 지어서 만든 사용자 정의 자료형이다

사용자 정의 자료형이란 C++에서 기본적으로 제공하는 자료형이 아니지만

자료형으로 쓰기위해 우리가 직접 만든 자료형이란 의미이다.


이런 개념이 왜 필요하느냐 하면

예를들어


학생100의 정보 관리 프로그램을 제작할 때
각각의 학생은 이름, 학번, 나이 … 등의
여러 가지 정보를 가지고 있다.
이를 따로따로 관리하려면
string name[100];
int number[100];
int age[100]; ...

과 같이 해당 자료를 가지는 정보를 배열로 따로따로 만들것이다.

정보가 더 많아지면 더 많은 배열을 만들게 될것이다.


그러나 student의 정보를 하나로 그룹지어서 사용자 정의 자료형을 만들면


Student stu[100];

과 같이 만들수있고

정보가 추가되어도 Student 100명을 만든다는것은 변함이 없다.


구조체는 다음과 같이 정의한다




Student 구조체를 정의한다면



과 같이 표현되고 정보가 더 늘어나면 저 구조체에 변수하나를 추가하면된다.


해당 구조체를 사용하기 위해서는 다음과 같다.


선언은 일반 변수와 동일하다
Student stu;
구조체에 내부변수에는 . 을 이용하여 접근한다
stu.name = “김철수”;
Stu.age = 20;
Stu.number = 2018333333;


ps. 파일입출력때 배운 . (점) 도 여기서 . 과 동일하다 다만 파일입출력은 내부 변수가 아닌 내부 함수에 접근한것이고 이것은 추후에 OOP를 배우면 알게될것이다.


구조체를 이용해서

학생 구조체를 정의하고 각각의 요소를 입력받아 파일로 저장해 보아라



구조체는 후에 OOP와 클래스와 밀접한 관련이 있으므로 까먹지 말자


728x90