Con trỏ là biến lưu trữ địa chỉ của biến khác. Khi cấp phát bộ nhớ cho biến, con trỏ trỏ đến địa chỉ đó. Toán tử * dùng để khai báo con trỏ.
Cú pháp
datatype *variable_name;
Trong đó: datatype – kiểu dữ liệu; variable_name – tên con trỏ.
Ví dụ
#include <stdio.h>
int main() {
int a = 8;
int *ptr;
ptr = &a;
printf("Gia tri bien: %d\n", a);
printf("Dia chi bien: %p\n", (void*)ptr);
printf("Gia tri qua con tro: %d\n", *ptr);
return 0;
}
Kết quả
Gia tri bien: 8
Dia chi bien: 0x7ffc...
Gia tri qua con tro: 8
Giải thích: Biến a giá trị 8. Con trỏ ptr lưu địa chỉ a (&a). *ptr giải tham chiếu lấy giá trị 8.
Các khái niệm cốt lõi
&a– Lấy địa chỉ củaa*ptr– Giải tham chiếu (lấy giá trị tại địa chỉptrtrỏ tới)ptr++– Tăng con trỏ (nhảy sang phần tử tiếp theo theo kiểu dữ liệu)- Con trỏ NULL – Con trỏ không trỏ đâu (
NULLhoặcnullptr)