1 LẬP TRÌNH CĂN BẢN KIỂU CẤU TRÚC 2 Nộidung chươngnày l Kiểu cấu trúc trong C l Các thao tác trên biến kiểu cấu trúc l Con trỏ vàcấu trúc 3 Kiểu cấu trúc trong C l Khái niệm l Định nghĩa kiểu cấu trúc l Khai báo biến cấu trúc 4 Khái niệm l Kiểu cấu trúc (struct) làkiểu dữ liệu bao gồm nhiều thành phần cókiểu khác nhau, mỗi thành phần được gọi làmột trường (field) l Nókhác với kiểu mảng (nơi màcác phần tử cócùng kiểu) l Vídụ: 1 struct: 1 mảng: 5 Định nghĩa kiểu cấu trúc + Khai báo biến cấu trúc (1) l Cách 1: struct SinhVien{ char MSSV[10]; char HoTen[40]; struct NgayThang NgaySinh; int Phai; char DiaChi[40]; }; ⇒Khaibáo biến: struct NgayThang NgaySinh; struct SinhVien SV; struct <Tên cấu trúc> { <Kiểu> <Trường 1>; <Kiểu> <Trường 2>; …… <Kiểu> <Trường n>; } [biến 1, biến 2]; Vídụ: struct NgayThang{ unsigned char Ngay; unsigned char Thang; unsigned int Nam; }; struct <Tên cấu trúc> tên_biến; 6 Định nghĩa kiểu cấu trúc + Khai báo biến cấu trúc (2) l Chúý: l struct không tên: l Tuy nhiên A vàB làcác struct có2 thành phần x vày. struct này không cótên, nên ngoài A vàB, ta không thể định nghĩa thêm các biến khác được. A vàB làcác biến cókiểu struct point. Sau này ta cóthể khai báo thêm các biến khác cókiểu struct point này. 7 Định nghĩa kiểu cấu trúc + Khai báo biến cấu trúc (3) l Cách 2: typedef struct{ char MSSV[10]; char HoTen[40]; NgayThang NgaySinh; int Phai; char DiaChi[40]; }SinhVien; ⇒Khai báo biến: NgayThang NgaySinh; SinhVien SV; typedef struct { <Kiểu> <Trường 1> ; <Kiểu> <Trường 2> ; …… <Kiểu> <Trường n> ; }<Tên cấu trúc>; Vídụ: typedef struct{ unsigned char Ngay; unsigned char Thang; unsigned int Nam; }NgayThang; <Tên cấu trúc> tên_biến; 8 Các thao tác trên biến kiểu cấu trúc l Truy xuất đến từng trường của biến cấu trúc l Khởi tạo cấu trúc 9 Truy xuất đến từng trường (field) của biến cấu trúc (1) l Cúpháp: <Biến cấu trúc>.<Tên trường> l Vídụ1: Chương trình cho phép đọc dữ liệu từ bàn phím cho biến mẩu tin SinhVien vàin biến mẩu tin đólên màn hình: 10 Truy xuất đến từng trường (field) của biến cấu trúc (2) 11 Truy xuất đến từng trường (field) của biến cấu trúc (3) l Kết quả của 1 lần nhập: 12 Truy xuất đến từng trường (field) của biến cấu trúc (4) l Lưu ý: l Các biến cấu trúc cóthể gán cho nhau l Vídụ: s=SV; // gán để lấy giátrị toàn bộ cấu trúc l Ta không thể thực hiện được các thao tác sau đây cho biến cấu trúc: l Sử dụng các hàm xuất nhập trên biến cấu trúc l Các phép toán quan hệ, các phép toán số học vàlogic 13 Khởi tạo cấu trúc l Biến cấu trúc cóthể được khởi tạo giátrị ban đầu lúc khai báo l Vídụ: struct NgayThang NgaySinh ={29, 8, 1986}; 14 Con trỏ vàcấu trúc l Khai báo l Sử dụng các con trỏ kiểu cấu trúc l Truy cập các thành phần của cấu trúc đang được quản lý bởi con trỏ 15 Khai báo (1) l Cúpháp: struct <Tên cấu trúc> * <Tên biến con trỏ>; l Vídụ1: struct NgayThang *p; hoặc NgayThang *p; // Nếu códùng typedef 16 Khai báo (2) l Vídụ2: l Truy cập đến các trường: l Nếu dùng con trỏ thì: 17 Sử dụng các con trỏ kiểu cấu trúc l Có2 cách: l Phải cấp phát bộ nhớ cho nó l Cho nóchỉ vào (chứa địa chỉ) biến đang tồn tại l Vídụ: struct NgayThang *p; … p=(struct NgayThang *)malloc(sizeof(struct NgayThang)); p->Ngay=29; p->Thang=8; p->Nam=1986; Hoặc struct NgayThang Ngay = {29,8,1986}; p = &Ngay; 18 Truy cập các thành phần của cấu trúc đang được quản lý bởi con trỏ (1) l Với khai báo sau: struct NgayThang *p; l Ta cóthể truy cập đến các trường của nó như sau: p->Ngay p->Thang hoặc (p*).Ngay (p*).Thang 19 Truy cập các thành phần của cấu trúc đang được quản lý bởi con trỏ (3) l Vídụ 20 Hết chương . 1 LẬP TRÌNH CĂN BẢN KIỂU CẤU TRÚC 2 Nộidung chươngnày l Kiểu cấu trúc trong C l Các thao tác trên biến kiểu cấu trúc l Con trỏ v cấu trúc 3 Kiểu cấu trúc trong C l Khái niệm l Định nghĩa kiểu cấu. Nam; }NgayThang; <Tên cấu trúc& gt; tên_biến; 8 Các thao tác trên biến kiểu cấu trúc l Truy xuất đến từng trường của biến cấu trúc l Khởi tạo cấu trúc 9 Truy xuất đến từng trường (field) của biến cấu trúc (1) l. cấu trúc l Khai báo biến cấu trúc 4 Khái niệm l Kiểu cấu trúc (struct) l kiểu dữ liệu bao gồm nhiều thành phần c kiểu khác nhau, mỗi thành phần được gọi làmột trường (field) l Nókhác với kiểu