intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài 10 Kiểu Cấu Trúc và Kiểu Hợp

Chia sẻ: Nguyễn Thị Phương Phương | Ngày: | Loại File: PDF | Số trang:19

80
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài 10 Kiểu Cấu Trúc và Kiểu Hợp

  1. Bài 10 Ki u C u Trúc và Ki u H p 1
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. #include cout
  13. 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
  14. 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
  15. 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(&lt); int tm_isdst; cout tm_hour
  16. 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
  17. 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
  18. 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
  19. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2