-
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