Bài giảng Kiến trúc máy tính - Chương 2 Cấu trúc - Nguyễn Đức Minh

pdf 9 trang cucquyet12 4090
Bạn đang xem tài liệu "Bài giảng Kiến trúc máy tính - Chương 2 Cấu trúc - Nguyễn Đức Minh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_2_cau_truc_nguyen_duc_mi.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 2 Cấu trúc - Nguyễn Đức Minh

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