Menu
CoddyTech

Khai báo 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 39 trên 63.

Bây giờ bạn đã hiểu struct là gì, đã đến lúc học cách tạo kiểu cấu trúc của riêng mình. Khai báo struct trong C tuân theo một cú pháp cụ thể, dùng để xác định khuôn mẫu cho kiểu dữ liệu tùy chỉnh của bạn.

Cú pháp cơ bản để khai báo một struct là:

struct StructureName {
    datatype member1;
    datatype member2;
    // ... thêm các thành viên khác
};

Cách hoạt động của từng phần như sau: bạn bắt đầu bằng từ khóa struct, tiếp theo là tên cấu trúc, rồi liệt kê tất cả biến thành viên trong dấu ngoặc nhọn. Mỗi thành viên được khai báo giống như một biến thông thường, với kiểu dữ liệu và tên. Đừng quên dấu chấm phẩy sau dấu ngoặc nhọn đóng!

Ví dụ, để tạo một cấu trúc biểu diễn một điểm trong không gian 2D:

struct Point {
    int x;
    int y;
};

Khai báo này tạo một kiểu dữ liệu mới có tên struct Point, gồm hai thành viên kiểu số nguyên: x và y. Sau khi khai báo, bạn có thể dùng kiểu cấu trúc này trong toàn bộ chương trình để tạo các biến lưu thông tin tọa độ một cách có tổ chức.

challenge icon

Thử thách

Dễ

Tạo một chương trình C khai báo struct để biểu diễn một cuốn sách trong hệ thống thư viện. Chương trình cần:

  1. Khai báo struct có tên Book, chứa các thành viên sau:
    • Một số nguyên id để lưu mã số của cuốn sách
    • Một mảng ký tự title có kích thước 50 để lưu tiêu đề cuốn sách
    • Một số nguyên pages để lưu số trang
    • Một số thực price để lưu giá cuốn sách
  2. Sau khi khai báo struct, in thông báo xác nhận: Book struct defined successfully!
  3. Dùng toán tử sizeof() để in kích thước của struct Book tính bằng byte, theo định dạng: Size of Book struct: [size] bytes
  4. In kích thước của từng thành viên:
    • Size of id: [size] bytes
    • Size of title: [size] bytes
    • Size of pages: [size] bytes
    • Size of price: [size] bytes

Thử thách này kiểm tra mức độ hiểu của bạn về cú pháp khai báo struct, bao gồm cách dùng từ khóa struct đúng cách, khai báo thành viên với kiểu dữ liệu phù hợp và đặt dấu chấm phẩy sau dấu ngoặc nhọn đóng. Bạn cũng sẽ tìm hiểu cách C cấp phát bộ nhớ cho các thành viên của struct bằng toán tử sizeof().

Lưu ý rằng kích thước chính xác có thể thay đổi tùy theo kiến trúc hệ thống, nhưng cú pháp định nghĩa struct phải chính xác để chương trình biên dịch và chạy thành công.

Tự làm thử

#include <stdio.h>

int main() {
    // TODO: Định nghĩa struct Book tại đây
    
    
    // In ra thông báo xác nhận
    printf("Book struct defined successfully!\n");
    
    // TODO: In ra kích thước của struct Book và các thành viên của nó
    
    
    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