Menu
CoddyTech

Truy cập thành viên của struct

Thuộc phần Logic và luồng điều khiển trong hành trình C của Coddy. Bài học 41 trên 63.

Bây giờ bạn đã biết cách tạo biến struct, bạn cần học cách làm việc với dữ liệu được lưu bên trong chúng. Toán tử dấu chấm (.) giúp bạn truy cập và chỉnh sửa từng thành viên của biến struct.

Cú pháp truy cập các thành viên của struct rất đơn giản:

structVariable.memberName

Với ví dụ về struct Point, bạn có thể đọc và ghi các thành viên của nó:

struct Point p1;

// Ghi giá trị vào các thành viên của struct
p1.x = 10;
p1.y = 20;

// Đọc giá trị từ các thành viên của struct
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

Toán tử dấu chấm hoạt động giống hệt như khi truy cập bất kỳ biến nào khác: bạn có thể dùng nó trong phép gán, phép toán số học, lời gọi hàm hoặc bất cứ nơi nào bạn dùng một biến thông thường thuộc kiểu đó. Mỗi thành viên hoạt động như một biến độc lập thuộc kiểu đã khai báo, cho phép bạn thao tác với dữ liệu của struct một cách có tổ chức và trực quan.

challenge icon

Thử thách

Dễ

Tạo một chương trình C minh họa cách truy cập và sửa đổi các thành viên của struct bằng toán tử dấu chấm. Chương trình của bạn cần:

  1. Định nghĩa một struct có tên Car với các thành viên sau:
    • Một số nguyên year để lưu năm sản xuất
    • Một mảng ký tự brand có kích thước 20 để lưu thương hiệu xe
    • Một số nguyên mileage để lưu số dặm hiện tại
    • Một số thực price để lưu giá xe
  2. Tạo một biến Car có tên myCar
  3. Đọc các giá trị đầu vào sau và gán chúng cho các thành viên của struct bằng toán tử dấu chấm:
    • Đọc một số nguyên cho năm và gán số đó cho myCar.year
    • Đọc một chuỗi cho thương hiệu và gán chuỗi đó cho myCar.brand
    • Đọc một số nguyên cho số dặm và gán số đó cho myCar.mileage
    • Đọc một số thực cho giá xe và gán số đó cho myCar.price
  4. Sau khi đọc tất cả giá trị, thực hiện các thao tác sau:
    • Tăng số dặm thêm 1000 bằng cách dùng myCar.mileage += 1000;
    • Giảm giá xe đi 500.0 bằng cách dùng myCar.price -= 500.0;
  5. In thông tin xe bằng cách dùng toán tử dấu chấm để truy cập từng thành viên theo đúng định dạng sau:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

Thử thách này kiểm tra mức độ hiểu của bạn về toán tử dấu chấm khi đọc và ghi các thành viên của struct. Bạn sẽ luyện tập cách gán giá trị cho các thành viên của struct, thực hiện các phép toán số học trên chúng và truy cập chúng để in ra.

Ví dụ, nếu đầu vào là:

2020
Toyota
50000
25000.50

Đầu ra của bạn cần là:

Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50

Tự làm thử

#include <stdio.h>
#include <string.h>

// TODO: Định nghĩa struct Car ở đây

int main() {
    // TODO: Tạo biến (variable) Car tên là myCar
    
    // Đọc các giá trị (value) đầu vào
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: Gán các giá trị đầu vào cho các thành viên của struct bằng toán tử (operator) dấu chấm
    
    // TODO: Sửa mileage và price theo yêu cầu
    
    // TODO: In ra thông tin xe bằng toán tử dấu chấm
    printf("Car Details:\n");
    // In Year, Brand, Mileage và Price ở đây
    
    return 0;
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch C online