Một con trỏ tới con trỏ trong C++ là một form không định hướng hoặc một chuỗi con trỏ. Thông thường, một con trỏ chứa địa chỉ của một biến. Khi chúng ta định nghĩa một con trỏ tới một con trỏ, con trỏ đầu tiên chứa địa chỉ của con trỏ thứ hai, con trỏ thứ 2 trỏ tới vị trí chứa giá trị.
Con trỏ tới một con trỏ phải được khai báo bởi việc đặt một dấu sao (*) ở trước tên của nó. Ví dụ, sau đây là khai báo một con trỏ tới một con trỏ trong kiểu int:
int **var;
Khi một giá trị mục tiêu được trỏ không định hướng bởi một con trỏ tới một con trỏ, truy cập giá trị đó yêu cầu rằng toán tử dấu sao được áp dụng hai lần, như dưới ví dụ:
#include <iostream> using namespace std; int main() { int var; int *ptr; int **pptr; var = 100; // lay dia chi cua var ptr = &var; // lay dia chi cua ptr pptr = &ptr; // In gia tri cua bien var va cac con tro ra man hinh cout << "Gia tri cua var la: " << var << endl; cout << "Gia tri tai *ptr la: " << *ptr << endl; cout << "Gia tri tai **pptr la: " << **pptr << endl; return 0; }
Kết quả:
Gia tri cua var la: 100 Gia tri tai *ptr la: 100 Gia tri tai **pptr la: 100