Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 13: Kiểu dữ liệu có cấu trúc và kiểu dữ liệu tự định - Nguyễn Phúc Khải

Khái niệm - Khai báo struct
 Struct (tạm dich là cấu trúc) là một kiểu dữ
liệu phức hợp được tạo từ các kiểu dữ liệu
khác, các kiểu dữ liệu này được sử dụng khai
báo cho các biến thành phần của biến kiểu
struct.
struct tên_cấu_trúc
{
Khai báo các biến thành phần 
pdf 24 trang xuanthi 29/12/2022 1840
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 13: Kiểu dữ liệu có cấu trúc và kiểu dữ liệu tự định - Nguyễn Phúc Khải", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_he_thong_may_tinh_va_ngon_ngu_lap_trinh_chuong_13.pdf

Nội dung text: Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 13: Kiểu dữ liệu có cấu trúc và kiểu dữ liệu tự định - Nguyễn Phúc Khải

  1. Các nội dung: . Kiểu STRUCT . Kiểu UNION . Kiểu ENUM (Enumerated) . Định nghĩa kiểu bằng TYPEDEF © TS. Nguyễn Phúc Khải 2
  2. . Ví dụ: struct sinh_vien { char ma_so[10]; char ho_ten[40]; int tuoi; char dia_chi[80]; }; © TS. Nguyễn Phúc Khải 4
  3. . Ví dụ: struct sinh_vien { char ma_so[10]; char ho_ten[40]; int tuoi; char dia_chi[80]; } sv1, sv2; © TS. Nguyễn Phúc Khải 6
  4. . Để truy xuất một thành phần của biến cấu trúc, C có toán tử chấm “.” để lấy từng thành phần. . Ví dụ: strcpy (sv1.ma_so, “49508XX"); strcpy (sv1.ho_ten, “Tran van D"); sv1.tuoi = 21; strcpy (sv1.dia_chi, " 42 Tr Dinh p.13 q.TB"); © TS. Nguyễn Phúc Khải 8
  5. . Các thành phần của biến struct cũng là biến bình thường, nên ta có thể lấy địa chỉ của chúng. . Kiểu struct có thể được lấy kích thước tính theo byte nhờ toán tử sizeof. . Ví du: sizeof (struct sinh_vien); © TS. Nguyễn Phúc Khải 10
  6. . Pointer trỏ tới một struct: . Cú pháp khai báo biến pointer này như sau: struct tên_cấu_trúc *tên_pointer; . Ví dụ: struct sinh_vien a, sv[50], *pa, *psv; pa =&a; psv = sv; © TS. Nguyễn Phúc Khải 12
  7. . C lại cho phép khai báo struct mà trong các thành phần của nó lại có các pointer chỉ đến một cấu trúc cùng kiểu. . Ví dụ: struct node { char message[81]; struct node *next; }; © TS. Nguyễn Phúc Khải 14
  8. . Ví dụ: struct date { unsigned day: 5; unsigned month: 4; unsigned year: 6; int: 0; } ngay; © TS. Nguyễn Phúc Khải 16
  9. . Ví dụ: struct vi_du { unsigned field1: 7; unsigned field2: 5; unsigned field3: 2; unsigned field4: 6; unsigned field5: 7; } vd; © TS. Nguyễn Phúc Khải 18
  10. . Khai báo biến kiểu union: union tên_union { khai_báo_biến_thành_phần } biến, biến [, ]; hoặc union tên_union biến, biến [ ]; © TS. Nguyễn Phúc Khải 20
  11. . Để truy xuất đến một biến thành phần của biến thuộc kiểu union, ta cũng dùng toán tử chấm “.”. . Ví dụ: union thu a; a.c = 'a'; . Ta có thể khai báo một biến pointer chỉ đến một biến kiểu union. . Ví dụ: union thu *pthu, a; pthu = &a; © TS. Nguyễn Phúc Khải 22
  12. © TS. Nguyễn Phúc Khải 24