Có, bạn có thể có số lượng con trỏ tùy ý.
int x = 5;
int *a = &x;
int **b = &a;
int ***c = &b;
printf("%d %d %d %d\n", x, *a, **b, ***c);
Một con trỏ đến một con trỏ đến một con trỏ là không một danh sách liên kết. Một danh sách liên kết là một loại cấu trúc có chứa một con trỏ đến kiểu riêng của mình:
struct list
{
int data;
struct list *next;
};
Vì vậy mà bạn có thể chuỗi chúng lại với nhau trong một danh sách:
struct list three = { 3, NULL };
struct list two = { 2, &three };
struct list one = { 1, &two };
struct list head = { 0, &one };
Và lặp qua chúng:
for (struct list *node = &head; node->next; node = node->next)
{
printf("%d\n", node->data);
}
Nguồn
2014-12-17 17:18:15
Rút ngắn tiêu đề. Và có, 3 cấp độ của con trỏ được hỗ trợ. Trong thực tế, [nhiều cấp độ có thể] (http://www.stackoverflow.com/questions/10087113/how-many-levels-of-pointers-can-we-have) –
Câu hỏi này đã được hỏi! Kiểm tra [this] (http://stackoverflow.com/questions/22002248/double-and-triple-pointers-in-c) thread! –
Một con trỏ và một danh sách liên kết là hai điều hoàn toàn khác nhau. –