Menu
CoddyTech

구조체 멤버에 접근하기

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);

점 연산자는 다른 변수에 접근하는 것과 똑같이 작동합니다. 대입, 산술 연산, 함수 호출 또는 해당 유형의 일반 변수를 사용하는 모든 곳에서 사용할 수 있습니다. 각 멤버는 선언된 유형의 독립적인 변수처럼 동작하므로 구조체의 데이터를 체계적이고 직관적인 방식으로 조작할 수 있습니다.

challenge icon

챌린지

쉬움

점 연산자를 사용하여 구조체 멤버에 접근하고 수정하는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다.

  1. 다음 멤버를 가진 struct Car를 정의하세요.
    • 제조 연도를 저장할 정수 year
    • 자동차 브랜드를 저장할 크기 20의 문자 배열 brand
    • 현재 주행 거리를 저장할 정수 mileage
    • 자동차 가격을 저장할 실수형 price
  2. myCar라는 이름의 Car 변수를 만드세요.
  3. 다음 입력값을 읽고 점 연산자를 사용하여 구조체 멤버에 할당하세요.
    • 연도를 나타내는 정수를 읽어 myCar.year에 할당하세요.
    • 브랜드를 나타내는 문자열을 읽고 strcpy()를 사용하여 myCar.brand에 복사하세요. (배열에는 =을 사용하여 값을 할당할 수 없습니다.)
    • 주행 거리를 나타내는 정수를 읽어 myCar.mileage에 할당하세요.
    • 가격을 나타내는 실수를 읽어 myCar.price에 할당하세요.
  4. 모든 값을 읽은 후 다음 작업을 수행하세요.
    • myCar.mileage += 1000;을 사용하여 주행 거리를 1000만큼 늘리세요.
    • myCar.price -= 500.0;을 사용하여 가격을 500.0만큼 낮추세요.
  5. 점 연산자를 사용하여 각 멤버에 접근하고, 다음 형식 그대로 자동차 정보를 출력하세요.
    • 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;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨

직접 연습해 보세요: 온라인 C 컴파일러