Tải bản đầy đủ (.pdf) (4 trang)

Ngôn ngữ lập trình C/C++ - Tuần 8

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (148.26 KB, 4 trang )

1
1
NGÔN NGỮ LẬP TRÌNH
C/C++
Nguyễn Hải Châu
Khoa Công nghệ thông tin
Trường Đại học Công nghệ
(Bài giảng tuần 8)
2
Nội dung
z Kiểu dữ liệu có cấu trúc
{Cấu trúc
{Hợp
{Trường
z Kiểu liệt kê
3
Kiểu cấu trúc
4
Khai báo và khởi tạo cấu trúc
struct <tên kiểu>
{
các thành phần;
} [<danh sách biến>];
z Mỗi thành phần (một trường) là một
khai báo biến
z Phần <danh sách biến> có thể có hoặc
không
5
Khai báo biến cấu trúc
// Khai báo trong C
struct <tên cấu trúc> <danh sách biến>;


// Khai báo trong C++
<tên cấu trúc> <danh sách biến>;
Ví dụ:
struct vector {
double x, y, z;
};
struct vector v1, *v2; // Khai báo vector trong C
vector v3, *v4; // Khai báo vector trong C++
6
Truy cập các thành phần cấu trúc
z Nếu var là một biến cấu trúc và m là thành
phần của cấu trúc thì cách truy cập đến
thành phần là var.m
z Nếu pvar là một biến con trỏ cấu trúc và
m là thành phần của cấu trúc thì cách truy
cập đến thành phần là pvar->m
z Ví dụ:
{Thành phần x, y, z của các vector trong ví dụ
trên: v1.x, v1.y, v1.z; v2->x, v2->y, v2->z
2
7
Phép gán và khởi tạo cấu trúc
z Khác với biến mảng, ta có thể gán hai
biến cấu trúc cùng kiểu.
z Ví dụ:
struct vector v1, v2, v3 = {1, 1, 1};
v1.x = 0; v1.y = 0; v1.z = 0;
v2 = v1; // Gán cấu trúc
8
Hàm và cấu trúc

9
Con trỏ và địa chỉ cấu trúc
z Khai báo con trỏ đến cấu trúc:
z struct <tên cấu trúc> *p;
z Truy cập đến các thành phần:
{p-><tên thành phần>, hoặc
{*p.<tên thành phần>
z Địa chỉ các thành phần:
{&(p-><tên thành phần>)
10
Đối của hàm là cấu trúc
z Một cấu trúc có thể được sử dụng để làm
đối của hàm dưới các dạng sau đây:
{Là một biến cấu trúc, khi đó tham đối thực sự là
một cấu trúc.
{Là một con trỏ cấu trúc, tham đối thực sự là địa
chỉ của một cấu trúc.
{Là một tham chiếu cấu trúc, tham đối thực sự là
một cấu trúc.
{Là một mảng cấu trúc hình thức hoặc con trỏ
mảng, tham đối thực sự là tên mảng cấu trúc.
11
Giá trị của hàm là cấu trúc
z Cũng tương tự như các kiểu dữ liệu cơ
bản, giá trị trả lại của một hàm cũng có thể
là các cấu trúc dưới các dạng sau:
{là một biến cấu trúc.
{là một con trỏ cấu trúc.
{là một tham chiếu cấu trúc.
12

Cấu trúc với thành phần kiểu bit
(trường)
3
13
Khái niệm
z Thông thường các biến trong C, C++ sử
dụng một số nguyên các byte để lưu trữ
z Trong các trường hợp cần thao tác với
các bit, ta sử dụng khai báo trường
14
Khai báo trường
struct <tên cấu trúc> {
int <tên trường>:<số bit>;

<tên kiểu> <tên trường>’

}
z Chú ý: Tên trường bit phải có kiểu int
hoặc unsigned int
15
Khai báo kiểu mới
z typedef <tên kiểu> <tên kiểu mới>;
z Ví dụ:
typedef struct vector vector_t;
typedef struct {
int ngay, thang, nam;
} Date;
16
Kiểu hợp (Union)
17

Khai báo
union <tên kiểu> {
Danh sách các thành phần;
};
z Cách truy cập đến các thành phần: Giống
như kiểu cấu trúc
18
Kiểu liệt kê
4
19
z Có thể gán các giá trị nguyên liên tiếp
(tính từ 0) cho các tên gọi cụ thể bằng
kiểu liệt kê theo khai báo sau đây:
z enum tên_kiểu { d/s tên các giá trị };
z Ví dụ:
{enum Bool {false, true};
Khai báo
20
Sử dụng kiểu liệt kê
Biến tham chiếu
int i;
int &j=i; // j là một cách tham chiếu khác
// của biến i
j = 5; // Sau lệnh gán này i cũng có giá trị 5
Biến tham chiếu phải được khởi tạo khi
khai báo

×