Con trỏ lưu địa chỉ của biến. Khi cấp phát bộ nhớ, con trỏ trỏ đến địa chỉ đó. Toán tử * dùng để khai báo con trỏ. Con trỏ đến mảng trỏ đến khối bộ nhớ của biến mảng.
Cú pháp
datatype *variable_name[size];
Trong đó: datatype – kiểu dữ liệu; variable_name – tên biến; size – kích thước mảng.
Ví dụ
#include <stdio.h>
int main() {
int *arr[3]; // Mảng 3 con trỏ int
int *a; // Một con trỏ int
printf("Dia chi mang con tro: %p\n", (void*)arr);
printf("Dia chi con tro don: %p\n", (void*)&a);
return 0;
}
Kết quả
Dia chi mang con tro: 0x7ffc...
Dia chi con tro don: 0x7ffc...
Giải thích: int *arr[3] là mảng 3 con trỏ int. int *a là một con trỏ đơn. Chương trình in địa chỉ của chúng.
Phân biệt:
int *arr[3]– Mảng con trỏ (array of pointers)int (*arr)[3]– Con trỏ đến mảng 3 int (pointer to array)int arr[3]– Mảng 3 int (array of int)