he thong may tinh va ngon ngu c nguyen phuc khai chuong 13 cuuduongthancong com

24 2 0
he thong may tinh va ngon ngu c nguyen phuc khai chuong 13   cuuduongthancong com

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

.c om ng co an th ng du o u cu Company LOGO CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nội dung: u du o ng th an co ng c om Kiểu STRUCT Kiểu UNION Kiểu ENUM (Enumerated) Định nghĩa kiểu TYPEDEF cu     CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt KIỂU STRUCT du o ng th an co ng c om  Khái niệm - Khai báo struct  Struct (tạm dich cấu trúc) kiểu liệu phức hợp tạo từ kiểu liệu khác, kiểu liệu sử dụng khai báo cho biến thành phần biến kiểu struct cu u struct tên_cấu_trúc { Khai báo biến thành phần }; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt ng cu u du o ng th an co struct sinh_vien { char ma_so[10]; char ho_ten[40]; int tuoi; char dia_chi[80]; }; c om  Ví dụ: CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt cu u du o ng th an co ng c om  Cú pháp khai báo biến cấu trúc giống khai báo biến bình thường: struct tên_struct tên_biến;  Ví dụ: struct sinh_vien sv1, sv2; struct sinh_vien sv1 = { "49508XX", "Tran van V", 21, "42 Tr Dinh p.13 q.TB"}; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt ng cu u du o ng th an co struct sinh_vien { char ma_so[10]; char ho_ten[40]; int tuoi; char dia_chi[80]; } sv1, sv2; c om  Ví dụ: CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt .c om ng co an 40 byte byte 80 byte tuoi dia_chi ho_ten cu u du o ma_so ng th 10 byte CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt co ng c om  Để truy xuất thành phần biến cấu trúc, C có tốn tử chấm “.” để lấy thành phần  Ví dụ: cu u du o ng th an 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"); CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt cu u du o ng th an co ng c om  C cho phép gán cấu trúc kiểu cho qua tên biến cấu trúc thay phải gán thành phần cho  Ví dụ: sv2 = sv1; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt cu u du o ng th an co ng c om  Các thành phần biến struct biến bình thường, nên ta lấy địa chúng  Kiểu struct lấy kích thước tính theo byte nhờ tốn tử sizeof  Ví du: sizeof (struct sinh_vien); CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 10 ng c om  Mảng struct:  Cú pháp khai báo mảng struct: co struct ten_cau_truc ten_mang [kich_thuoc]; th an  Ví dụ: cu u du o ng struct sinh_vien sv[50]; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 11 th an co ng c om  Pointer trỏ tới struct:  Cú pháp khai báo biến pointer sau: struct tên_cấu_trúc *tên_pointer;  Ví dụ: cu u du o ng struct sinh_vien a, sv[50], *pa, *psv; pa =&a; psv = sv; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 12 du o ng th an co ng c om  Việc truy xuất đến thành phần cấu trúc thông qua pointer thực toán tử lấy thành phần đối tượng pointer, ký hiệu -> (có thể gọi tốn tử mũi tên)  Ví dụ: cu  Hay u printf ("Ho ten sinh vien: %s \n", psv -> ho_ten); printf ("Ho ten sinh vien: %s \n", (*psv).ho_ten); CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 13 an co ng c om  C lại cho phép khai báo struct mà thành phần lại có pointer đến cấu trúc kiểu  Ví dụ: cu u du o ng th struct node { char message[81]; struct node *next; CuuDuongThanCong.com © TS Nguyễn Phúc Khải }; https://fb.com/tailieudientucntt 14 cu u du o ng th struct tên_cấu_trúc { kiểu tên_vùng 1: số_bit1; kiểu tên_vùng 2:số_bit2; } tên_biến; an co ng c om  Struct dạng field:  C cho phép ta khai báo thành phần struct theo bit nhóm bit Một thành phần gọi field (tạm dịch vùng)  Với kiểu unsigned, signed int CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 15 .c om  Ví dụ: co ng struct date { cu u du o ng th an unsigned day: 5; unsigned month: 4; unsigned year: 6; int: 0; } ngay; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 16 Mỗi vùng dài tối đa 16 bit (một int) cấp chỗ int, nằm hai int khác Sự phân bố bit cho field int struct (từ trái sang phải hay ngược lại), không phân biệt Mọi thao tác thực biến kiểu field có liên quan đến địa không thực th cu  u du o ng  an co ng  c om  Struct dạng field: CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 17 an co ng c om  Ví dụ: cu u du o ng th struct vi_du { unsigned field1: 7; unsigned field2: 5; unsigned field3: 2; unsigned field4: 6; unsigned field5: 7; CuuDuongThanCong.com © TS Nguyễn Phúc Khải } vd; https://fb.com/tailieudientucntt 18 KIỂU UNION cu u du o ng th an co ng c om  Ngơn ngữ C có kiểu liệu union (tạm dịch kiểu hợp nhất), kiểu liệu đặc biệt mà khai báo ứng với vùng nhớ, giá trị thời điểm khác có kiểu khác tùy vào việc sử dụng biến thành phần CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 19 cu u du o ng th an co ng c om  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 [, ]; union tên_union biến, biến [ ]; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 20 ng co an th ng du o u cu union thu { char c; int i; float f; double d; }; c om  Ví dụ: CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 21 co ng c om  Để truy xuất đến biến thành phần biến thuộc kiểu union, ta dùng toán tử chấm “.”  Ví dụ: th an union thu a; a.c = 'a'; cu u du o ng  Ta khai báo biến pointer đến biến kiểu union  Ví dụ: union thu *pthu, a; pthu = &a; CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 22 cu u du o ng th an co ng c om  Việc truy xuất đến thành phần union qua pointer thực toán tử mũi tên, để lấy thành phần union pointer đến  Ví dụ: pthu->c = 'A';  Kiểu union lấy kích thước tính theo byte qua tốn tử sizeof CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 23 .c om ng co an th ng du o u cu CuuDuongThanCong.com © TS Nguyễn Phúc Khải https://fb.com/tailieudientucntt 24 ... (*psv).ho_ten); CuuDuongThanCong. com © TS Nguyễn Ph? ?c Khải https://fb .com/ tailieudientucntt 13 an co ng c om  C lại cho phép khai báo struct mà thành phần lại c? ? pointer đến c? ??u tr? ?c kiểu  Ví dụ: cu u... dụ: CuuDuongThanCong. com © TS Nguyễn Ph? ?c Khải https://fb .com/ tailieudientucntt .c om ng co an 40 byte byte 80 byte tuoi dia_chi ho_ten cu u du o ma_so ng th 10 byte CuuDuongThanCong. com © TS Nguyễn... ng c om  C cho phép gán c? ??u tr? ?c kiểu cho qua tên biến c? ??u tr? ?c thay phải gán thành phần cho  Ví dụ: sv2 = sv1; CuuDuongThanCong. com © TS Nguyễn Ph? ?c Khải https://fb .com/ tailieudientucntt cu

Ngày đăng: 27/12/2022, 08:53

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan