구조체란?
- 변수를 모아 놓은 집합체
- 특정 변수들이 무언가의 하위 개념으로 묶일 수 있을 때
studentName[10], studentAge[10], studentKorScore[10] ....
학생의 'XXX'
이름, 나이, 국어점수, 석차 등등을 '학생' 이라는 구조체로 묶어서 사용
구조체와 비교
- 구조체 : 데이터(자료형)을 실제로 쓰이는 데이터끼리 묶어서 추상화
- 배열 : 속성이 동일한 여러개의 데이터를 같은 이름과 순서를 지정한 연속된 번호로
서로 연관되어 있음을 표시함으로써 추상화함
- 함수 : 프로세스(코드)를 특정 기능 단위로 묶어서 추상화
구조체 정의
- 구조체가 사용되는 함수의 앞에 정의한다. (해당 함수의 바깥쪽 앞(위))
// main함수 앞에다!!
struct score
{
int kor;
int eng;
int math;
};
struct student
{
string name; // 클래스도 쓸 수 있고
int age; // 기본 자료형도 쓸 수 있고
string homeTown;
bool Pride;
bool Married;
bool House; // 배열도 넣을 수 있고
score myScore; // 하위 변수로도 넣을 수 있다.
}seyoun, jaehuck; // 중괄호의 끝과 세미콜론 사이에다 student의 변수를 미리 선언해 줄 수도 있다.
구조체 사용 방법
- 구조체는 일종의 우리가 새롭게 만든 데이터형이다.
- int / bool, float, string 같은 기본 자료형들은 모두 사용 가능
구조체의 선언과 초기화
- 기본적으로 구조체 변수의 개념은 배열 변수의 개념과 동일 / int a[3] = {50, 70, 80);
- 구조체 변수도 다음과 같이 선언과 동시에 초기화할 수 있다.
player.HP = player.HP = monster[n].dmg;
주석 없이 코드를 배우지 않은 사람에게도 어느 정도의 가독성이 확보된다.
int main()
{
student student; // 구조체 변수의 선언
score myScore = { 50, 80, 90 }; // 배열을 초기화하듯 구조체 변수도 초기화할 수 있다.
// monster a = {"고블린", 79, 55.12f, true, 100}
student.name = "artsung";
student.age = 30;
student.homeTown = "인천";
student.Pride = true;
student.Married = false;
student.House = false;
student.myScore.kor = 95;
return 0;
}
반응형
'Programming > C | C++ | Unreal' 카테고리의 다른 글
[C / C++] printf함수 구현 (putchar, putc) 이용 (1) | 2022.05.04 |
---|---|
[C / C++] 문자열 주요함수 구현. (0) | 2022.05.02 |
[C++] rand(), 삼항연산자 이용 (0) | 2022.04.12 |
[C++] 여러가지 연산 (0) | 2022.04.07 |
[C++] 데이터 타입 / 변수 / 표기법 (0) | 2022.04.06 |