구조체 변수 생성하기
Coddy C 여정의 Logic & Flow 섹션에 포함된 레슨 — 63개 중 40번째.
struct 타입을 선언하고 나면, 이를 사용하여 데이터를 보유하는 실제 변수를 생성할 수 있습니다. 구조체 변수를 생성하는 것은 C 언어에서 다른 변수를 선언하는 것과 똑같이 작동합니다. 즉, 데이터 타입을 지정하고 그 뒤에 변수 이름을 지정합니다.
구조체 변수를 생성하는 구문은 다음과 같습니다:
struct StructureName variableName;예를 들어, 이전 레슨의 Point 구조체를 사용하면 다음과 같습니다:
struct Point p1;
struct Point p2;이것은 p1과 p2라는 두 개의 변수를 생성하며, 둘 다 struct Point 타입입니다. 각 변수는 구조체에 정의된 x와 y 멤버의 별도 복사본을 가집니다.
int나 float와 같은 내장 타입과 마찬가지로 필요한 만큼 많은 구조체 변수를 생성할 수 있습니다. 각 구조체 변수는 독립적이며 멤버에 서로 다른 값을 저장할 수 있습니다. 일단 생성되면, 이 변수들은 좌표 데이터를 체계적인 방식으로 저장할 준비가 됩니다.
챌린지
쉬움서로 다른 유형의 여러 구조체 변수를 생성하는 방법을 보여주는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다:
- 다음 멤버를 포함하는
Rectangle이라는 이름의struct를 정의합니다:- 정수형
width - 정수형
height
- 정수형
- 다음 멤버를 포함하는
Student라는 이름의struct를 정의합니다:- 정수형
id - 크기가 30인 문자 배열
name - 부동 소수점형
gpa
- 정수형
- main 함수에서 다음 구조체 변수들을 생성합니다:
rect1과rect2라는 이름의 두 개의Rectangle변수student1,student2,student3라는 이름의 세 개의Student변수
- 생성된 각 변수에 대해 다음 형식으로 확인 메시지를 출력합니다:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- 생성된 구조체 변수의 총 개수를 다음 형식으로 출력합니다:
Total struct variables created: 5 - 각 유형의 메모리 사용량을 다음 형식으로 출력합니다:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
이 챌린지는 여러 구조체 유형을 정의하고 각 유형의 변수를 여러 개 생성하는 능력을 테스트합니다. 각 구조체 변수는 독립적이며 고유한 메모리 공간을 가지므로, 구조체를 사용하여 프로그램에서 다양한 유형의 데이터를 구성하는 방법을 보여줍니다.
치트 시트
struct 변수를 생성하려면 다른 변수를 선언하는 것과 동일한 구문을 사용합니다:
struct StructureName variableName;여러 개의 struct 변수를 생성하는 예시:
struct Point p1;
struct Point p2;각 struct 변수는 독립적이며 struct에 정의된 모든 멤버의 별도 복사본을 가집니다. 기본 제공 타입과 마찬가지로 필요한 만큼 많은 struct 변수를 생성할 수 있습니다.
직접 해보기
#include <stdio.h>
int main() {
// TODO: 여기에 Rectangle 구조체를 정의하세요
// TODO: 여기에 Student 구조체를 정의하세요
// TODO: 여기에 구조체 변수들을 생성하세요
// TODO: 생성된 각 변수에 대한 확인 메시지를 출력하세요
// TODO: 생성된 구조체 변수의 총 개수를 출력하세요
// TODO: sizeof()를 사용하여 각 구조체 타입의 메모리 사용량을 출력하세요
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.