29
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
2.3.2 Kiểuhằng (const)
Cho phép khai báo như biếnsố, nhưng ₫ượcgángiá
trị cố₫ịnh bằng mộthằng số và không thể₫ượcthay
₫ổi => khai báo hằng số
void main() {
const double pi = 3.1412; // initializing is OK!
const int ci = 1; // initializing is OK!
ci = 2; // error!
ci = 1; // error, too!
int i = ci; // const int is a subset of int
const Color cc = Red;
cc = Green; // error
const double d; // potential error
}
30
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
2.3.3 Kiểucon trỏ
Con trỏ thựcchấtlàmộtbiếnchứa ₫ịachỉ củamột
₫ốitượng có thể là mộtbiếnhoặcmộthàm.
int v = 2;
int* p = &v; // p holds the address of v
Con trỏ p
Vùng nhớ chứa biến CT
0x000127c3
&v
p:
chứa ₫ịa chỉ của biến v
double* pd2; // p refers to an uncertain address
*pd2 = 0; // fatal error
pd2 = &d; // OK, pd and pd2 refer to the same addr.
}
33
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
Tóm tắtsơ bộ về con trỏ
Con trỏ là mộtbiếnchứa ₫ịachỉ byte ₫ầucủamộtbiếndữ liệu,
₫ượcsử dụng ₫ể truy cậpgiántiếpdữ liệu ₫ó
Sau khi khai báo mà không khởitạo, mặc ₫ịnh con trỏ mang
một ₫ịachỉ bất ₫ịnh
Địachỉ con trỏ mang có thể thay ₫ổi ₫ược => con trỏ có thể mỗi
lúc ₫ạidiệnchomộtbiếndữ liệu khác
Toán t
ử lấy ₫ịachỉ củamộtbiến(&) trả về con trỏ vào kiểucủa
biến=> thường gán cho biếncon trỏ
Toán tử truy nhậpnộidung (*) ápdụng cho con trỏ trả về biến
mà con trỏ mang ₫ịachỉ => có thể₫ọchoặcthay₫ổi giá trị của
biến ₫ó
Không bao giờ sử dụng toán tử truy nhậpnội dung, nếucon trỏ
chưamangmột ₫ịachỉ ô nhớ mà chươ
ng trình có quyềnkiểm
soát
34
© 2004, HOÀNG MINH SƠN
Chương 2: Các yếutố cơ bảncủaC vàC++
2.3.4 Kiểumảng
012 N-1