Xem mẫu
Nội dung
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)
⌘Kiểu dữ liệu có cấu trúc {Cấu trúc
{Hợp {Trường
⌘Kiểu liệt kê
1 2
Khai báo và khởi tạo cấu trúc
Kiểu cấu trúc
struct {
các thành phần;
} [];
⌘Mỗi thành phần (một trường) là một khai báo biến
⌘Phần có thể có hoặc không
3 4
Khai báo biến cấu trúc
// Khai báo trong C
struct ; // Khai báo trong C++
; 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++
5
Truy cập các thành phần cấu trúc
⌘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
⌘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
⌘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
6
1
Phép gán và khởi tạo cấu trúc
⌘Khác với biến mảng, ta có thể gán hai biến cấu trúc cùng kiểu.
⌘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
Hàm và cấu trúc
7 8
Con trỏ và địa chỉ cấu trúc
⌘Khai báo con trỏ đến cấu trúc: ⌘struct *p; ⌘Truy cập đến các thành phần:
{p->, hoặc {*p.
⌘Địa chỉ các thành phần: {&(p->)
9
Đối của hàm là cấu trúc
⌘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.
10
Giá trị của hàm là cấu trúc
⌘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.
11
Cấu trúc với thành phần kiểu bit (trường)
12
2
Khái niệm
⌘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ữ
⌘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
Khai báo trường
struct { int :; ....
’ ...
}
⌘Chú ý: Tên trường bit phải có kiểu int hoặc unsigned int
13 14
Khai báo kiểu mới
⌘typedef ; ⌘Ví dụ:
typedef struct vector vector_t; typedef struct {
int ngay, thang, nam;
} Date;
Kiểu hợp (Union)
15 16
Khai báo
union {
Danh sách các thành phần; };
⌘Cách truy cập đến các thành phần: Giống như kiểu cấu trúc
Kiểu liệt kê
17 18
3
Khai báo
⌘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:
⌘enum tên_kiểu { d/s tên các giá trị }; ⌘Ví dụ:
{enum Bool {false, true};
19
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
20
4
...
- tailieumienphi.vn
nguon tai.lieu . vn