Cấu trúc trong C

Structures C



Trong C, một cấu trúc là một biến do người dùng định nghĩa được sử dụng để lưu trữ một tập hợp các biến trong một thực thể duy nhất. Chúng ta hãy sử dụng một phép loại suy đơn giản để giải thích việc triển khai cấu trúc và tính hữu dụng trong C.

Giả sử chúng ta muốn lưu trữ thông tin về người dùng sử dụng một dịch vụ cụ thể. Thông tin đó có thể bao gồm tên người dùng, email, địa chỉ, chế độ dịch vụ, v.v. Để lưu trữ thông tin như vậy, chúng ta có thể tạo từng thuộc tính dưới dạng một biến độc lập. Tuy nhiên, khi chúng ta có hơn mười người dùng, mã có thể vượt khỏi tầm kiểm soát và trở nên rất khó đọc và mệt mỏi.







Để giải quyết vấn đề này, chúng ta có thể tạo một cấu trúc. Bên trong cấu trúc, chúng ta có thể lưu trữ tất cả các thuộc tính được chia sẻ bởi tất cả người dùng và sau đó thêm các biến duy nhất cho mỗi người dùng.



Chúng ta hãy xem xét các ví dụ khác nhau để xem cách thực hiện điều này.



Cách xác định cấu trúc trong C

Để xác định cấu trúc trong C, chúng tôi sử dụng từ khóa struct theo sau là tên của cấu trúc. Sau tên, chúng ta có một cặp dấu ngoặc nhọn, nơi chúng ta thêm các thành viên.





Hãy xem xét cú pháp bên dưới:

cấu trúcstruct_name
{
/* dữ liệu */
gõ tên_hành_viên;
nhập tên_của_bạn2;
nhập tên_của_viên3;

...
kiểumember_nameN;
};

Tên của cấu trúc có thể là bất cứ thứ gì bạn muốn miễn là nó tuân thủ quy ước đặt tên của ngôn ngữ lập trình C.



Chúng ta có thể triển khai cấu trúc ví dụ về phép loại suy người dùng như:

cấu trúcngười dùng
{
chartên tài khoản[hai mươi];
chare-mail[225];
charĐịa chỉ[năm mươi];
NStuổi;
bool đã đăng ký;
};

Cách tạo các biến cấu trúc

Có hai cách chính để tạo biến cấu trúc. Cách đầu tiên là khai báo chúng giống như các biến bình thường, và cách khác là đặt chúng bằng cách sử dụng dấu ngoặc nhọn.

Ví dụ dưới đây cho thấy cách khai báo biến cấu trúc dưới dạng biến C chuẩn.

cấu trúcngười dùng
{
chartên tài khoản[hai mươi];
chare-mail[225];
charĐịa chỉ[năm mươi];
NStuổi;
bool đã đăng ký;
};

NSchủ chốt(NSargc, char hăng sô *argv[])
{
cấu trúcngười dùng user1,user2,user3
trở lại 0;
}

Phương pháp tạo biến cấu trúc khác như hình dưới đây:

cấu trúcngười dùng
{
chartên tài khoản[hai mươi];
chare-mail[225];
charĐịa chỉ[năm mươi];
NStuổi;
bool đã đăng ký;
}user1,user2,user3;

Trong ví dụ này, chúng tôi tạo chúng trong quá trình khai báo cấu trúc.

Cấu trúc thành viên Init

Bạn không thể khởi tạo các thành viên cấu trúc trong quá trình tạo vì không có bộ nhớ được cấp phát cho kiểu.

Để khởi tạo các thành viên của một cấu trúc, bạn sử dụng dấu ngoặc nhọn như hình dưới đây:

cấu trúcngười dùng
{
chartên tài khoản[hai mươi];
chare-mail[225];
charĐịa chỉ[năm mươi];
NStuổi;
bool đã đăng ký;
};
NSchủ chốt(NSargc, char hăng sô *argv[])
{
cấu trúcngười dùng user1= {'Tên người dùng của tôi', '[email được bảo vệ]', 35, thật}
trở lại 0;
}

Thành viên cấu trúc truy cập

Để truy cập các thành viên của một cấu trúc, chúng ta sử dụng toán tử dấu chấm, bắt đầu bằng tên cấu trúc, dấu chấm và tên của thành viên.

cấu trúcngười dùng
{
chartên tài khoản[hai mươi];
chare-mail[225];
charĐịa chỉ[năm mươi];
NStuổi;
bool đã đăng ký;
};
NSchủ chốt(NSargc, char hăng sô *argv[])
{
cấu trúcngười dùng user1= {'Tên người dùng của tôi', '[email được bảo vệ]', 35, thật}
người dùng1.e-mail = '[email được bảo vệ]'
trở lại 0;
}

Trong ví dụ này, chúng tôi truy cập các thành viên của user1.

Từ khóa Typedef

Chúng tôi sử dụng từ khóa typedef để tạo bí danh cho các loại dữ liệu, giúp mã dễ đọc hơn.

Ví dụ:

typedef cấu trúcngười dùng
{
chartên tài khoản[hai mươi];
chare-mail[225];
charĐịa chỉ[năm mươi];
NStuổi;
bool đã đăng ký;
}u;
NSchủ chốt(NSargc, char hăng sô *argv[])
{
u user1= {'Tên người dùng của tôi', '[email được bảo vệ]', 35, thật}
người dùng1.đăng ký = sai
trở lại 0;
}

Trong ví dụ trên, chúng tôi đã tạo một bí danh u cho cấu trúc người dùng. Do đó, chúng tôi không cần phải gọi người dùng struct mỗi lần. Chúng ta có thể sử dụng u như đã định nghĩa ở trên.

Con trỏ cấu trúc

Bạn cũng có thể có một con trỏ đến một cấu trúc. Làm điều này cho phép bạn truy cập các thành viên bằng cách sử dụng toán tử ->.

Ví dụ:

typedef cấu trúcngười dùng
{
chartên tài khoản[hai mươi];
chare-mail[225];
charĐịa chỉ[năm mươi];
NStuổi;
bool đã đăng ký;
}u;
NSchủ chốt(NSargc, char hăng sô *argv[])
{
u user1= {'Tên người dùng của tôi', '[email được bảo vệ]', 35, thật}

// con trỏ đến một cấu trúc khác
u*user_ptr= &user1
user_ptr->tên tài khoản= 'tên người dùng'
trở lại 0;
}

Phần kết luận

Hướng dẫn này bao gồm các kiến ​​thức cơ bản về cách làm việc với các cấu trúc trong ngôn ngữ lập trình C.

Cảm ơn bạn đã đọc!