구조체 멤버에 접근하기
Coddy C 여정의 논리 & 흐름 섹션에 포함된 레슨. 63개 중 41번째.
이제 구조체 변수를 만들 수 있으니, 그 안에 저장된 데이터를 다루는 방법을 배워야 합니다. 점 연산자(.</code)는 구조체 변수의 개별 멤버에 접근하고 수정하는 데 사용하는 핵심 도구입니다.</p><p>구조체 멤버에 접근하는 문법은 간단합니다.</p><pre><code class="language-c">structVariable.memberName
Point 구조체 예제를 사용하면 멤버를 읽고 쓸 수 있습니다:
struct Point p1;
// 구조체 멤버에 값 쓰기
p1.x = 10;
p1.y = 20;
// 구조체 멤버에서 값 읽기
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);점 연산자는 다른 변수에 접근하는 것과 똑같이 작동합니다. 대입, 산술 연산, 함수 호출 또는 해당 유형의 일반 변수를 사용하는 모든 곳에서 사용할 수 있습니다. 각 멤버는 선언된 유형의 독립적인 변수처럼 동작하므로 구조체의 데이터를 체계적이고 직관적인 방식으로 조작할 수 있습니다.
챌린지
쉬움점 연산자를 사용하여 구조체 멤버에 접근하고 수정하는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다.
- 다음 멤버를 가진
structCar를 정의하세요.- 제조 연도를 저장할 정수
year - 자동차 브랜드를 저장할 크기 20의 문자 배열
brand - 현재 주행 거리를 저장할 정수
mileage - 자동차 가격을 저장할 실수형
price
- 제조 연도를 저장할 정수
myCar라는 이름의Car변수를 만드세요.- 다음 입력값을 읽고 점 연산자를 사용하여 구조체 멤버에 할당하세요.
- 연도를 나타내는 정수를 읽어
myCar.year에 할당하세요. - 브랜드를 나타내는 문자열을 읽고
strcpy()를 사용하여myCar.brand에 복사하세요. (배열에는=을 사용하여 값을 할당할 수 없습니다.) - 주행 거리를 나타내는 정수를 읽어
myCar.mileage에 할당하세요. - 가격을 나타내는 실수를 읽어
myCar.price에 할당하세요.
- 연도를 나타내는 정수를 읽어
- 모든 값을 읽은 후 다음 작업을 수행하세요.
myCar.mileage += 1000;을 사용하여 주행 거리를 1000만큼 늘리세요.myCar.price -= 500.0;을 사용하여 가격을 500.0만큼 낮추세요.
- 점 연산자를 사용하여 각 멤버에 접근하고, 다음 형식 그대로 자동차 정보를 출력하세요.
Car Details:Year: [year]Brand: [brand]Mileage: [mileage]Price: [price]
이 과제에서는 구조체 멤버를 읽고 쓸 때 점 연산자를 사용하는 방법을 이해하고 있는지 확인합니다. 구조체 멤버에 값을 할당하고, 해당 멤버에 산술 연산을 수행하고, 출력할 때 해당 멤버에 접근하는 연습을 하게 됩니다.
예를 들어 입력이 다음과 같다면:
2020
Toyota
50000
25000.50출력은 다음과 같아야 합니다.
Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50직접 해보기
#include <stdio.h>
#include <string.h>
// TODO: 여기에 Car 구조체를 정의하세요
int main() {
// TODO: myCar라는 이름의 Car 변수를 만드세요
// 입력값을 읽으세요
int year;
char brand[20];
int mileage;
float price;
scanf("%d", &year);
scanf("%s", brand);
scanf("%d", &mileage);
scanf("%f", &price);
// TODO: 점 연산자를 사용하여 입력값을 구조체 멤버에 할당하세요
// TODO: 지정된 대로 mileage와 price를 수정하세요
// TODO: 점 연산자를 사용하여 자동차의 세부 정보를 출력하세요
printf("Car Details:\n");
// 여기에 Year, Brand, Mileage, Price를 출력하세요
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 & 흐름의 모든 레슨
직접 연습해 보세요: 온라인 C 컴파일러