Bài giảng Lập trình C nâng cao - Chương 2: Cấu trúc gồm có những nội dung chính sau: Khai báo và định nghĩa cấu trúc, khai báo kiểu dữ liệu bằng typedef, một số thao tác trên cấu trúc,...và các nội dung cụ thể khác. Mời các bạn cùng tham khảo.
Chương 2: CẤU TRÚC Khai báo định nghĩa cấu trúc a Định nghĩa cấu trúc b Khai báo cấu trúc Khai báo cấu trúc Khai báo biến cấu trúc Khai báo mảng cấu trúc Khai báo trỏ cấu trúc Khai báo kiểu liệu typedef Một số thao tác cấu trúc a Truy cập tới thành phần cấu trúc b Phép gán cấu trúc c Truyền biến cấu trúc cho hàm Khai báo định nghĩa cấu trúc a Định nghĩa cấu trúc • • • Trong lập trình phải tổ chức liệu mà ngơn ngữ LTC khơng có sẵn Ví dụ: Dữ liệu ngày tháng gồm ngày, tháng, năm Dữ liệu sinh viên gồm mã số, họ tên, ngày tháng năm sinh, điểm… Để tổ chức loại liệu người ta dùng cấu trúc Cấu trúc kiểu liệu bao gồm nhiều kiểu liệu thành phần kiểu liệu thành phần kiểu liệu đơn liệu có cấu trúc khác 1 Khai báo định nghĩa cấu trúc b Khai báo cấu trúc • Cấu trúc khai báo theo cú pháp sau: struct struct sinhvien { { char ms[10]; biến thành phần 1; }; char hoten[20]; biến thành phần 2; int ns; …; float dtb; }; Khai báo định nghĩa cấu trúc b Khai báo cấu trúc • Khai báo biến cấu trúc struct { char ms[10]; { char hoten[20]; biến thành phần 1; biến thành phần 2; } biencautruc; • struct sinhvien int ns; float dtb; } sv1, sv2; Hoặc: struct biencautruc – struct sinhvien sv1, sv2 Khai báo định nghĩa cấu trúc b Khai báo cấu trúc • Khai báo mảng cấu trúc struct { char ms[10]; { char hoten[20]; biến thành phần 1; biến thành phần 2; } mangcautruc[size]; • struct sinhvien int ns; float dtb; } dslop[10]; Hoặc: struct mangcautruc[size] – struct sinhvien dslop[20] Khai báo định nghĩa cấu trúc b Khai báo cấu trúc • Khai báo trỏ cấu trúc struct { char ms[10]; { char hoten[20]; biến thành phần 1; biến thành phần 2; } *controct; • struct sinhvien int ns; float dtb; } *ctsv1, *ctct2; Hoặc: struct *biencontro – struct sinhvien *ctsv1; Khai báo kiểu liệu typedef • Ngơn ngữ c cho phép định nghĩa kiểu liệu từ khóa typedef – typedef ; – Ví dụ: khai báo typedef int songuyen; Khi ta khai bao songuyen s1, s2; • Đối với cấu trúc, việc khai báo dài ta thường khai báo cấu trúc từ khóa typedef – Ví dụ: typedef struct sinhvien { kiểu liệu thành phần }; Khi ta khai báo: sinhvien sv1, sv2; 3.Một số thao tác cấu trúc a Truy cập tới thành phần cấu trúc Cú pháp Cho biến cấu trúc . Ví dụ: sv1.ms Cho mảng cấu trúc [i]. Ví dụ: dslop[i].ms Cho trỏ cấu trúc -> .; Ví dụ: ctsv1->ms (*ctsv1).ms 3.Một số thao tác cấu trúc b Phép gán cấu trúc Phép gán thực biến cấu trúc c Truyền biến cấu trúc cho hàm Việc truyền biến cấu trúc, bao gồm tham biến tham trị – Tham trị – Tham biến ... -> .; Ví dụ: ctsv 1-> ms (*ctsv1).ms 3.Một số thao t? ?c cấu tr? ?c b Phép gán c? ??u tr? ?c Phép gán th? ?c biến c? ??u tr? ?c c Truyền biến c? ??u tr? ?c cho hàm Vi? ?c truyền biến c? ??u tr? ?c, bao gồm... tr? ?c a Truy c? ??p tới thành phần c? ??u tr? ?c Cú pháp Cho biến c? ??u tr? ?c . Ví dụ: sv1.ms Cho mảng c? ??u tr? ?c [i]. Ví dụ: dslop[i].ms Cho trỏ c? ??u tr? ?c -> ... sv2; Ho? ?c: struct biencautruc – struct sinhvien sv1, sv2 Khai báo định nghĩa c? ??u tr? ?c b Khai báo c? ??u tr? ?c • Khai báo mảng c? ??u tr? ?c struct { char ms[10]; { char hoten[20];