Bài 10 Kiểu Cấu Trúc và Kiểu Hợp
lượt xem 3
download
Trong C++, cấu trúc (structure) là một tập hợp nhiều biến được tham chiếu dưới cùng một tên, tạo ra một phương tiện gắn kết các thông tin có liên hệ với nhau. Mỗi thành phần giống nhưmột biến riêng của kiểu, nó gồm kiểu và tên thành phần.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài 10 Kiểu Cấu Trúc và Kiểu Hợp
- Bài 10 Ki u C u Trúc và Ki u H p 1
- Ki u c u trúc Trong C++, c u trúc (structure) là m t t p h p nhi u bi n đư c tham chi u dư i cùng m t tên, t o ra m t phương ti n g n k t các thông tin có liên h v i nhau. Khai báo struct { các thành ph n ; } ; 2
- M i thành ph n gi ng như m t bi n riêng c a ki u, nó g m ki u và tên thành ph n. M t thành ph n cũng còn đư c g i là trư ng (field). Ph n tên c a ki u c u trúc và ph n danh sách bi n có th có ho c không. Các ki u c u trúc đư c phép khai báo l ng nhau, nghĩa là m t thành ph n c a ki u c u trúc có th l i là m t trư ng có ki u c u trúc. M t bi n có ki u c u trúc s đư c phân b b nh sao cho các th c hi n c a nó đư c s p liên t c theo th t xu t hi n trong khai báo. 3
- Khai báo bi n ki u c u trúc dùng m t trong các d ng: struct ; ho c ; Các bi n đư c khai báo cũng có th đi kèm kh i t o: bi n = { giá tr kh i t o } ; 4
- Ví d struct inv_type { struct Phanso char item[40]; { double cost; int tu ; double retail; int mau ; int on_hand; }; int lead_time; } inv_varA, inv_varB, inv_varC; 5
- Truy xu t thành viên c a c u trúc Các bi n thành viên trong c u trúc đư c truy xu t b ng cách vi t tên bi n c u trúc và tên bi n thành viên đó cách nhau b i d u ch m. tên bi n c u trúc. tên bi n thành viên ví d inv_varA.cost gets(inv_varA.item); 6
- M ng ki u c u trúc Các c u trúc có th x p thành m ng. Đ khai báo m t m ng ki u c u trúc, trư c h t ph i đ nh nghĩa m t c u trúc, sau đó khai báo m t m ng c a ki u này. Ví d inv_type invtry[100]; Đ truy xu t bi n thành viên, ph i kèm theo ch s . Ví d invtry[3].item 7
- Khai báo m t bi n c u trúc sinhvien đ l p h sơ sihh viên, trong đó bi n ngaysinh cũng là bi n có c u trúc. struct sinhvien{ struct time { char hoten[20]; int ngay; time ngaysinh; int thang; char gt[5]; int nam; float diem; } } 8
- Truy n các c u trúc và hàm Khi m t c u trúc đư c dùng như m t tham s c a hàm thì toàn b c u trúc đư c truy n vào như truy n các tham s khác. Khi dùng m t c u trúc như là tham s , c n lưu ý ki u tham s c a hàm ph i cùng ki u c a bi n truy n vào. 9
- ví d int main() #include { using namespace std; sample arg; arg.a = 1000; struct sample { arg.ch = 'X'; int a; f1(arg); char ch; return 0; } }; void f1(sample parm) void f1(sample parm); { cout
- Gán các c u trúc Có th gán n i dung c a m t bi n ki u c u trúc sang m t bi n ki u c u trúc khác mi n là c hai có cùng ki u c u trúc. Ví d 11
- #include cout
- Tr n c u trúc và toán t mũi tên C++ cho phép các con tr ch đ n c u trúc Khai báo m t con tr c u trúc b ng cách đ t d u * trư c tên bi n c u trúc, ví d inv_type *inv_pointer; Tìm đ a ch c a bi n c u trúc dùng toán t &, ví d struct bal { float balance; char name[80]; } person; bal *p; p = &person;// đ t đ a ch c a person vào con tr p 13
- Thành ph n c a c u trúc có th đư c truy xu t thông qua con tr ch đ n c u trúc. Tuy nhiên, không dùng d u ch m mà dùng toán t mũi tên, ví d : p->balance Toán t mũi tên g m d u tr và d u l n hơn Con tr c u trúc đư c dùng khi c n dùng tham s c u trúc trong hàm, vì truy n con tr nhanh hơn truy n m t c u trúc l n. 14
- Ví d #include time_t #include struct tm { using namespace std; int tm_sec; tm int main() int tm_min; int tm_hour; { int tm_mday; struct tm *ptr; int tm_mon; time_t lt; int tm_year; lt = time('\0');//g i v i con tr null int tm_wday; int tm_yday; ptr = localtime(<); int tm_isdst; cout tm_hour
- Ki u h p (Union) Ki u h p g m hai hay nhi u bi n cùng chia s m t v trí b nh . Do đó m t union cung c p m t phương pháp đ d ch m t m u bit thành hai hay nhi u cách khác nhau. Khai báo union { Danh sách các thành ph n; }; 16
- Ví d union utype { i và ch chia s short int i; cùng m t v trí char ch; b nh }; utype u_var; i Byte 0 Byte 1 ch 17
- Truy xu t thành viên c a h p Đ truy xu t thành viên c a h p dùng cú pháp gi ng như khi truy xu t thành viên c a c u trúc. Ví d gán ký t 'A' cho thành viên ch c a u_var như sau: u_var.ch = 'A'; -Ví d con tr đ n u_var đư c truy n vào m t hàm. func1(&u_var); // truy n vào func1() m t con tr ch đ n u_var // ... } void func1(utype *un) { un->i = 10; /* gán 10 cho u_var dùng m t con tr */ } 18
- void disp_binary(unsigned u); // trao i bytes union swap_bytes { temp = sb.ch[0]; short int num; sb.ch[0] = sb.ch[1]; char ch[2]; sb.ch[1] = temp; }; cout
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình bài tập Pascal
144 p | 4832 | 1885
-
Tài liệu ôn tập thi liên thông ngành tin học - Pascal
142 p | 1589 | 261
-
BÀI TẬP THỰC HÀNH Môn Lập trình C nâng cao
14 p | 517 | 67
-
CÔNG NGHỆ GRID COMPUTING VÀ ỨNG DỤNG THỬ NGHIỆM TRONG BÀI TOÁN QUẢN TRỊ MẠNG - 10
23 p | 115 | 20
-
Bài giảng Hệ điều hành: Chương 10 - Hệ thống file
37 p | 107 | 16
-
Bài giảng Lập trình căn bản: Giới thiệu tổng quan
5 p | 112 | 13
-
Bài giảng Nhập môn lập trình - Chương 10: Kiểu cấu trúc
32 p | 77 | 12
-
Giáo trình mô đun Lập trình web PHP & MySQL (Nghề Công nghệ thông tin - Trình độ cao đẳng) - CĐ Kỹ thuật Công nghệ BR-VT
68 p | 51 | 11
-
Ngôn ngữ lập trình c&c++ ( Phạm Hồng Thái) P21
5 p | 122 | 10
-
Giáo trình mô đun Lập trình web PHP & MySQL (Nghề Quản trị mạng máy tính - Trình độ cao đẳng) - CĐ Kỹ thuật Công nghệ BR-VT
74 p | 48 | 7
-
Bài giảng Lập trình cơ bản bài 10: Cấu trúc dữ liệu
28 p | 93 | 5
-
Bài giảng Lập trình căn bản - Trường CĐ Công nghệ và Nông Lâm Nam Bộ
219 p | 21 | 5
-
Bài giảng Nhập môn Lập trình: Chương 10
21 p | 16 | 4
-
Bài giảng Lập trình nâng cao: Bài 10+11+12 - Trương Xuân Nam
44 p | 19 | 3
-
Bài giảng Nhập môn lập trình - Bài 10: Quản lý bộ nhớ
28 p | 85 | 3
-
Bài giảng Ngôn ngữ lập trình: Tổng quan môn học
6 p | 88 | 3
-
Bài giảng Tin học đại cương: Bài 10 - Bùi Thị Thu Cúc
16 p | 82 | 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