구조체 (Structures)
구조체는 여러 개의 변수(필드)를 하나의 복합 데이터 타입으로 묶는 데 사용됩니다. 구조체를 사용하면 관련 있는 데이터를 하나의 단위로 다룰 수 있습니다.
1. 구조체 선언과 정의
구조체를 선언하고 정의하는 방법은 다음과 같습니다:
struct Person {
string name;
int age;
double height;
};
2. 구조체 변수 선언과 초기화
구조체 변수를 선언하고 초기화하는 방법은 다음과 같습니다:
Person person1;
person1.name = "John";
person1.age = 30;
person1.height = 5.9;
Person person2 = {"Jane", 25, 5.5};
3. 구조체와 포인터
구조체 포인터를 사용하면 구조체의 주소를 가리킬 수 있습니다.
Person person = {"Alice", 28, 5.7};
Person *p = &person;
cout << p->name << endl; // Alice 출력
cout << p->age << endl; // 28 출력
cout << p->height << endl; // 5.7 출력
4. 구조체 배열
구조체 배열을 사용하면 여러 개의 구조체를 배열로 저장할 수 있습니다.
Person people[2] = {{"Tom", 40, 6.0}, {"Lucy", 22, 5.4}};
for (int i = 0; i < 2; i++) {
cout << people[i].name << ", " << people[i].age << ", " << people[i].height << endl;
}
열거형 (Enumerations)
열거형은 열거된 값을 가지는 데이터 타입을 정의하는 데 사용됩니다. 열거형을 사용하면 코드의 가독성을 높이고 상수를 더 명확하게 정의할 수 있습니다.
1. 열거형 선언과 정의
열거형을 선언하고 정의하는 방법은 다음과 같습니다:
enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};
2. 열거형 변수 선언과 초기화
열거형 변수를 선언하고 초기화하는 방법은 다음과 같습니다:
Day today = MONDAY;
3. 열거형 값 사용
열거형 값을 사용하는 방법은 다음과 같습니다:
Day today = WEDNESDAY;
if (today == WEDNESDAY) {
cout << "Today is Wednesday." << endl;
}
4. 열거형의 기본 값 변경
열거형의 기본 값을 변경할 수도 있습니다:
enum Color {RED = 1, GREEN, BLUE}; // GREEN = 2, BLUE = 3
Color myColor = GREEN;
cout << "Green color value: " << myColor << endl; // 2 출력
예제 문제
문제 1: 구조체를 사용하여 학생 정보를 저장하고 출력하는 프로그램 작성
구조체를 사용하여 학생의 이름, 나이, 학번을 저장하고, 이를 출력하는 프로그램을 작성하세요.
해설:
#include <iostream>
#include <string>
using namespace std;
struct Student {
string name;
int age;
int studentID;
};
int main() {
Student student1 = {"Alice", 20, 12345};
Student student2;
student2.name = "Bob";
student2.age = 22;
student2.studentID = 67890;
cout << "Student 1: " << student1.name << ", " << student1.age << ", " << student1.studentID << endl;
cout << "Student 2: " << student2.name << ", " << student2.age << ", " << student2.studentID << endl;
return 0;
}
이 프로그램은 구조체를 사용하여 학생 정보를 저장하고 출력합니다.
문제 2: 열거형을 사용하여 요일을 저장하고 출력하는 프로그램 작성
열거형을 사용하여 요일을 저장하고, 현재 요일을 출력하는 프로그램을 작성하세요.
해설:
#include <iostream>
using namespace std;
enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};
int main() {
Day today = FRIDAY;
switch (today) {
case SUNDAY:
cout << "Today is Sunday." << endl;
break;
case MONDAY:
cout << "Today is Monday." << endl;
break;
case TUESDAY:
cout << "Today is Tuesday." << endl;
break;
case WEDNESDAY:
cout << "Today is Wednesday." << endl;
break;
case THURSDAY:
cout << "Today is Thursday." << endl;
break;
case FRIDAY:
cout << "Today is Friday." << endl;
break;
case SATURDAY:
cout << "Today is Saturday." << endl;
break;
}
return 0;
}
이 프로그램은 열거형을 사용하여 현재 요일을 저장하고 출력합니다.
문제 3: 구조체 배열을 사용하여 여러 학생 정보를 저장하고 출력하는 프로그램 작성
구조체 배열을 사용하여 여러 학생의 이름, 나이, 학번을 저장하고, 이를 출력하는 프로그램을 작성하세요.
해설:
#include <iostream>
#include <string>
using namespace std;
struct Student {
string name;
int age;
int studentID;
};
int main() {
Student students[3] = {
{"Alice", 20, 12345},
{"Bob", 22, 67890},
{"Charlie", 19, 13579}
};
for (int i = 0; i < 3; i++) {
cout << "Student " << i + 1 << ": " << students[i].name << ", " << students[i].age << ", " << students[i].studentID << endl;
}
return 0;
}
이 프로그램은 구조체 배열을 사용하여 여러 학생의 정보를 저장하고 출력합니다.
다음 단계
11일차의 목표는 C++의 구조체와 열거형에 대해 학습하는 것이었습니다. 다음 날부터는 클래스와 객체 지향 프로그래밍(OOP)에 대해 다룰 것입니다.
내일은 "클래스와 객체 지향 프로그래밍 (OOP) 기초"에 대해 다룰 예정입니다. 질문이나 피드백이 있으면 댓글로 남겨 주세요!
'-----ETC----- > C++ 마스터 시리즈' 카테고리의 다른 글
[C++ 마스터] Day 13: 생성자와 소멸자 (0) | 2024.08.01 |
---|---|
[C++ 마스터] Day 14: 연산자 오버로딩 (0) | 2024.08.01 |
[C++ 마스터] Day 12: 클래스와 객체 지향 프로그래밍 (OOP) 기초 (0) | 2024.08.01 |
[C++ 마스터] Day 9: 포인터와 참조자 (0) | 2024.08.01 |
[C++ 마스터] Day 10: 동적 메모리 할당 (new, delete) (0) | 2024.08.01 |