Địa chỉ của biến là một con số. Ta có thể tạo
biến khác để lưu địa chỉ của biến này. Ở đây ta dùng
Con trỏ. Giống như mọi biến khác, biến con trỏ muốn sử dụng cũng cần phải được khai báo. Con trỏ
NULL là con trỏ không trỏ vào đâu cả. Khác với con trỏ chưa được khởi tạo.
int n;
int *p1 = &n; // khai báo và đặt địa chỉ của biến vào con trỏ
int *p2; // unreferenced local variable
int *p3 = NULL;
Khi mới khai báo, biến con trỏ được
đặt ở địa chỉ nào đó (không biết trước).
chứa giá trị không xác định trỏ đến vùng nhớ không biết trước. Đặt địa chỉ của biến vào con trỏ sử dụng (toán tử &). Con trỏ chứa
một số nguyên chỉ địa chỉ. Để truy xuất đến ô nhớ mà con trỏ trỏ đến, sử dụng (toán tử *). Ví dụ: Trong C:
int a = 5, *pa = &a;
printf("\nGia tri bien pa: %d", pa);
printf("\nDia chi cua bien a: %d", &a);
// -> pa và &a đều chỉ địa chỉ của biến a
printf("\nGia tri vung nho pa tro den: %d", *pa);
printf("\nGia tri cua bien a: %d", a);
// -> *pa và a đều chỉ nội dung của biến a
printf("\nDia chi bien pa: %d", &pa);
// -> địa chỉ biến pa,
// có 2 cái địa chỉ
// 1 là địa chỉ của biến con trỏ pa
// 2 là địa chỉ mà con trỏ pa trỏ đến
// Toán tử * để lấy ra giá trị mà con trỏ đang trỏ đến
// Ko để toán tử gì cả thì lấy ra địa chỉ mà con trỏ đang trỏ đến
// Nếu để cả dấu & trước tên con trỏ thì ta đang lấy ra "địa chỉ của riêng" con trỏ.
0 nhận xét:
Đăng nhận xét