Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 13 - TS. Nguyễn Phúc Khải
lượt xem 3
download
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 13: Kiểu dữ liệu có cấu trúc và kiểu dữ liệu tự định nghĩa, được biên soạn gồm các nội dung chính sau: Kiểu STRUCT; Kiểu UNION; Kiểu ENUM (Enumerated); Định nghĩa kiểu bằng TYPEDEF. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 13 - TS. Nguyễn Phúc Khải
- om .c ng co an th o ng du u cu Company LOGO 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các nội dung: Kiểu STRUCT om .c Kiểu UNION ng Kiểu ENUM (Enumerated) co Định nghĩa kiểu bằng TYPEDEF an th o ng du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 2
- KIỂU STRUCT Khái niệm - Khai báo struct om .c Struct (tạm dich là cấu trúc) là một kiểu dữ ng liệu phức hợp được tạo từ các kiểu dữ liệu co khác, các kiểu dữ liệu này được sử dụng khai an báo cho các biến thành phần của biến kiểu th ng struct. o du struct tên_cấu_trúc u cu { Khai báo các biến thành phần }; CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 3
- Ví dụ: om struct sinh_vien .c ng { co char ma_so[10]; an char ho_ten[40]; th ng int tuoi; o du char dia_chi[80]; u }; cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 4
- Cú pháp của một khai báo biến cấu trúc giống om như khai báo biến bình thường: .c ng struct tên_struct tên_biến; co Ví dụ: an struct sinh_vien sv1, sv2; th ng struct sinh_vien sv1 = { "49508XX", "Tran van o du V", 21, "42 Tr Dinh p.13 q.TB"}; u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 5
- Ví dụ: om struct sinh_vien .c ng { co char ma_so[10]; an char ho_ten[40]; th ng int tuoi; o du char dia_chi[80]; u } sv1, sv2; cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 6
- om .c ng co 10 byte 40 byte 2 byte 80 byte an th ng ma_so ho_ten tuoi dia_chi o du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 7
- Để truy xuất một thành phần của biến cấu trúc, om C có toán tử chấm “.” để lấy từng thành phần. .c ng Ví dụ: co strcpy (sv1.ma_so, “49508XX"); an strcpy (sv1.ho_ten, “Tran van D"); th ng sv1.tuoi = 21; o du strcpy (sv1.dia_chi, " 42 Tr Dinh p.13 q.TB"); u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 8
- C cho phép gán các cấu trúc cùng kiểu cho om nhau qua tên biến cấu trúc thay vì phải gán .c từng thành phần cho nhau. ng co Ví dụ: an th sv2 = sv1; ng o du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 9
- Các thành phần của biến struct cũng là biến om bình thường, nên ta có thể lấy địa chỉ của .c ng chúng. co Kiểu struct có thể được lấy kích thước tính an theo byte nhờ toán tử sizeof. th ng Ví du: sizeof (struct sinh_vien); o du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 10
- Mảng các struct: om .c Cú pháp khai báo mảng các struct: ng struct ten_cau_truc ten_mang [kich_thuoc]; co Ví dụ: an th struct sinh_vien sv[50]; o ng du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 11
- Pointer trỏ tới một struct: om .c Cú pháp khai báo biến pointer này như sau: ng struct tên_cấu_trúc *tên_pointer; co Ví dụ: an th struct sinh_vien a, sv[50], *pa, *psv; ng pa =&a; o du psv = sv; u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 12
- Việc truy xuất đến một thành phần của một om cấu trúc thông qua một pointer được thực hiện .c bằng toán tử lấy thành phần của đối tượng của ng co pointer, ký hiệu là -> (có thể gọi là toán tử mũi an tên). th ng Ví dụ: o du printf ("Ho ten sinh vien: %s \n", psv -> ho_ten); u Hay cu printf ("Ho ten sinh vien: %s \n", (*psv).ho_ten); CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 13
- C lại cho phép khai báo struct mà trong các om thành phần của nó lại có các pointer chỉ đến .c một cấu trúc cùng kiểu. ng co Ví dụ: an struct node th ng { o du char message[81]; u struct node *next; }; cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 14
- Struct dạng field: om C cho phép ta khai báo các thành phần của struct .c theo bit hoặc một nhóm bit. Một thành phần như vậy ng co được gọi là một field (tạm dịch là vùng). an struct tên_cấu_trúc th { kiểu tên_vùng 1: số_bit1; ng kiểu tên_vùng 2:số_bit2; o du ... u } tên_biến; cu Với kiểu chỉ có thể là unsigned, signed hoặc int CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 15
- Ví dụ: om struct date .c ng { co unsigned day: 5; an unsigned month: 4; unsigned year: 6; th o ng int: 0; du } ngay; u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 16
- Struct dạng field: om Mỗi vùng chỉ có thể dài tối đa 16 bit (một int) và .c được cấp chỗ trong một int, chứ không thể nằm ng co trên hai int khác nhau được. an Sự phân bố bit cho các field trong một int của th struct (từ trái sang phải hay ngược lại), không phân ng biệt được. o du Mọi thao tác thực hiện trên biến kiểu field có liên u cu quan đến địa chỉ đều không được thực hiện CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 17
- Ví dụ: om .c ng co an struct vi_du th ng { unsigned field1: 7; o du unsigned field2: 5; u unsigned field3: 2; cu unsigned field4: 6; unsigned field5: 7; } vd; CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 18
- KIỂU UNION Ngôn ngữ C có kiểu dữ liệu union (tạm dịch là om kiểu hợp nhất), đây là một kiểu dữ liệu đặc biệt .c mà nếu được khai báo thì ứng với một vùng ng co nhớ, giá trị ở mỗi thời điểm khác nhau thì có an thể có kiểu khác nhau tùy vào việc sử dụng biến thành phần trong nó. th o ng du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 19
- Khai báo biến kiểu union: om .c union tên_union ng { co khai_báo_biến_thành_phần an } biến, biến [,...]; th o ng hoặc du u union tên_union biến, biến [...]; cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ thống máy tính - Chương 3: Kiến trúc tập lệnh
24 p | 286 | 28
-
Bài giảng Hệ thống máy tính: Chương 5 - Nguyễn Kim Khánh
8 p | 128 | 16
-
Bài giảng Hệ thống máy tính: Chương 1 - Nguyễn Kim Khánh
9 p | 137 | 15
-
Bài giảng Hệ thống máy tính: Chương 2 - Nguyễn Kim Khánh
20 p | 131 | 15
-
Bài giảng Hệ thống máy tính - Chương 9: Lắp ráp và cài đặt máy tính
64 p | 122 | 14
-
Bài giảng Hệ thống máy tính - Chương 1: Tổng quan về Kiến trúc máy tính
61 p | 198 | 13
-
Bài giảng Hệ thống máy tính: Chương 3 - Nguyễn Kim Khánh
14 p | 126 | 13
-
Bài giảng Hệ thống máy tính - Chương 4: Hệ thống IO (Input Output System)
16 p | 270 | 7
-
Bài giảng Hệ thống máy tính (Computer Systems): Chương 2 - Nguyễn Kim Khánh
80 p | 14 | 5
-
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính (GV. Nguyễn Nhật Nam)
58 p | 32 | 5
-
Bài giảng Hệ thống máy tính: Chương 2.2 - TS. Trần Thị Minh Khoa
23 p | 47 | 5
-
Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 1: Ôn tập các kiến thức cơ bản về máy tính
39 p | 57 | 4
-
Bài giảng Hệ thống máy tính: Chương 2.1 - TS. Trần Thị Minh Khoa
30 p | 23 | 4
-
Bài giảng Hệ thống máy tính - Chương 5: Tổng quan hệ điều hành
8 p | 105 | 4
-
Bài giảng Hệ thống máy tính (Computer Systems): Chương 1 - Nguyễn Kim Khánh
68 p | 13 | 3
-
Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 1 - TS. Nguyễn Phúc Khải
39 p | 7 | 3
-
Bài giảng Hệ thống máy tính: Chương 1 - TS. Trần Thị Minh Khoa
15 p | 20 | 2
-
Bài giảng Hệ thống máy tính - Chương 0: Giới thiệu
7 p | 103 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn