NGÔN NGỮ LẬP TRÌNH<br />
Bài 8: Con trỏ và mảng động<br />
<br />
Giảng viên: Lý Anh Tuấn<br />
Email: tuanla@tlu.edu.vn<br />
<br />
Nội dung<br />
1.<br />
<br />
Con trỏ<br />
◦ Các biến con trỏ<br />
◦ Quản lý bộ nhớ<br />
<br />
2.<br />
<br />
Mảng động<br />
◦ Tạo và sử dụng<br />
◦ Phép tính con trỏ<br />
<br />
3.<br />
<br />
Lớp, con trỏ, mảng động<br />
◦ Con trỏ this<br />
◦ Hàm hủy, hàm tạo sao chép<br />
<br />
2<br />
<br />
Giới thiệu<br />
<br />
<br />
Định nghĩa con trỏ<br />
◦ Địa chỉ bộ nhớ của một biến<br />
<br />
<br />
<br />
Nhắc lại: bộ nhớ được phân chia<br />
◦ Các vị trí bộ nhớ được đánh số<br />
◦ Địa chỉ được sử dụng làm tên của biến<br />
<br />
<br />
<br />
Chúng ta đã sử dụng con trỏ rồi<br />
◦ Tham số truyền tham chiếu<br />
◦ Địa chỉ của đối số thực sự được truyền<br />
<br />
3<br />
<br />
Biến con trỏ<br />
<br />
<br />
Các con trỏ được định kiểu<br />
◦ Có thể lưu trữ con trỏ trong biến<br />
◦ Không phải int, double mà là một con trỏ trỏ tới int,<br />
double, vân vân<br />
<br />
<br />
<br />
Ví dụ:<br />
double *p;<br />
◦ p được khai báo là một biến con trỏ trỏ tới double<br />
◦ Có thể lưu giữ các con trỏ trỏ tới các biến kiểu double<br />
<br />
4<br />
<br />
Khai báo biến con trỏ<br />
<br />
<br />
Con trỏ được khai báo giống các kiểu khác<br />
◦ Thêm “*” trước tên biến<br />
◦ Tạo ra con trỏ trỏ đến kiểu đó<br />
<br />
“*” phải được đặt trước mỗi biến<br />
int *p1, *p2, v1, v2;<br />
<br />
<br />
◦ p1, p2 lưu trữ con trỏ trỏ tới các biến int<br />
◦ v1, v2 là các biến nguyên nguyên bản<br />
<br />
5<br />
<br />