Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
114,68 KB
Nội dung
Bài 10
Kiểu CấuTrúcvàKiểuHợp
1
Kiểu cấu trúc
Trong C++, cấutrú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 <tên kiểu>
{
các thành phần ;
} <danh sách biế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ểuvà 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ểucấutrúcvà phần danh sách biến có
thể có hoặc không.
Các kiểucấutrúc được phép khai báo lồng nhau,
nghĩa là một thành phần của kiểucấutrúc có thể lại là
một trường có kiểucấu trúc.
Một biến có kiểucấutrú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ểucấutrúc dùng một trong
các dạng:
struct <tên kiểucấu trúc> <danh sách biến> ;
hoặc
<tên kiểucấu trúc> <danh sách biến> ;
Các biến được khai báo cũng có thể đi kèm
khởi tạo:
<tên kiểucấu trúc> biến = { giá trị khởi tạo } ;
4
Ví dụ
struct Phanso
{
int tu ;
int mau ;
} ;
struct inv_type {
char item[40];
double cost;
double retail;
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ấutrúc được truy
xuất bằng cách viết tên biến cấutrúcvà 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ểucấu trúc
Các cấutrúc có thể xếp thành mảng. Để khai
báo một mảng kiểucấ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ấutrúc sinhvien để lập hồ
sơ sihh viên, trong đó biến ngaysinh cũng là
biến có cấu trúc.
struct time {
int ngay;
int thang;
int nam;
}
struct sinhvien{
char hoten[20];
time ngaysinh;
char gt[5];
float diem;
}
8
Truyền các cấutrúcvà hàm
Khi một cấutrúc được dùng như một tham số
của hàm thì toàn bộ cấutrúc được truyền
vào như truyền các tham số khác.
Khi dùng một cấutrú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ụ
#include <iostream>
using namespace std;
struct sample {
int a;
char ch;
} ;
void f1(sample parm);
int main()
{
sample arg;
arg.a = 1000;
arg.ch = 'X';
f1(arg);
return 0;
}
void f1(sample parm)
{
cout << parm.a << " " << parm.ch << "\n";
}
10
[...]... svar2.b; return 0; } 12 Trỏ ến cấu trúcvà 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...Gán các cấutrú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 using namespace std; struct stype { int a, b; }; int main() { stype svar1, svar2; svar1.a = svar1.b = 10; svar2.a = svar2.b = 20; cout i = 10; /* gán 10 cho u_var dùng m t con tr */ } 18 void disp_binary(unsigned u); union swap_bytes... *curtime); 15 Kiểuhợ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 { short int i; char ch; }; utype u_var; i và ch chia sẻ cùng một vị trí bộ nhớ i Byte 0 Byte 1 ch 17 Truy xuất thành viên của hợp Đ truy xu . 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,. 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. << "
"; } 10 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 <iostream> using