Struct hay cấu trúc là một kiểu dữ liệu mà người dùng tự định nghĩa ra để giải quyết các bài toán thực tế NỘI DUNG :
main 1. Struct Struct là giải pháp khi bạn cần giải quyết các bài toán thực tế khi mà đối tượng bạn cần lưu lại trong chương trình cần rất nhiều thông tin. Ví dụ khi bạn muốn lưu thông tin của một sinh viên thì không có kiểu dữ liệu nào trong C phù hợp cả, mà bạn cần tập hợp nhiều kiểu dữ liệu vào làm một. Struct hay cấu trúc là một kiểu dữ liệu mà tự bạn định nghĩa ra bằng cách gộp nhiều kiểu dữ liệu có sẵn lại nhằm mục đích có thể mô tả nhiều trường thông tin của đối tượng bạn cần lưu Cú pháp khai báo : struct ten_struct{ };Trong struct bạn sẽ liệt kê các trường thông tin mà bạn cần lưu cho cấu trúc bạn đang xây dựng kèm theo kiểu dữ liệu của trường thông tin đó Ví dụ bạn muốn xây dựng một cấu trúc lưu sinh viên gồm :
Ta sẽ xây dựng cấu trúc sinh viên như sau : struct SinhVien{ };Sau khi xây dựng xong cấu trúc thì bạn có thể dùng nó như kiểu dữ liệu thông thường và khai báo các biến thuộc kiểu cấu trúc này. Lưu ý là struct trong C khi khai báo bạn cần thêm từ khóa struct ở trước, nếu bạn không muốn khai báo từ khóa struct mỗi khi dùng cấu trúc thì có thể typedef để định nghĩa lại kiểu cho cấu trúc. Để truy cập vào các trường dữ liệu của cấu trúc bạn dùng toán tử '.' (dot operator) Ví dụ 1 : include "stdio.h"include "string.h"struct SinhVien{ };
typedef struct SinhVien SinhVien;
int main(){ }Output : Thong tin sinh vien : Ho ten : Nguyen Van 28Tech Email : [email protected] Lop : CNTT Diem gpa : 2.10 Bạn có thể gán 2 cấu trúc cho nhau, khi đó các trường thông tin của 2 biến struct là giống nhau Ví dụ 2 : Nhập thông tin struct từ bàn phím include "stdio.h"include "string.h"struct SinhVien{ };
typedef struct SinhVien SinhVien;
int main(){ }2. Struct lồng nhau Struct có thể làm kiểu dữ liệu cho một trường thông tin trong một struct khác, khi đó ta có struct trong struct Ví dụ bạn cần quản lý thông tin của 1 cuốn sách, cuốn sách này có tác giả cần lưu thông tin về tên và quốc tịch của tác giả đó Khi đó bạn hãy xây dựng trước cấu trúc lưu tác giả, sau đó xây dựng struct sách. Trong struct sách sẽ có 1 biến thuộc kiểu tác giả để lưu thông tin Code : include "stdio.h"include "string.h"struct TacGia{ };
typedef struct TacGia TacGia;
struct Sach{ };
typedef struct Sach Sach;
int main(){ }Output : Thong tin sach : Tieu de : Hanh trinh vo dich WC 2022 Ten tac gia : Lionel Messi Quoc tich tac gia : Argentina Gia ban : 500000VND 3. Struct làm tham số cho hàm Sau khi xây dựng xong struct thì nó cũng là một kiểu dữ liệu vì thế mà bạn có thể viết hàm có tham số là struct hoặc trả về struct. Trong ví dụ dưới đây mình sẽ viết hàm trả về 1 struct được nhập từ bàn phím và 1 hàm in ra thông tin của 1 struct ra màn hình. |