📜  在C C++中我们可以拥有多少级指针(1)

📅  最后修改于: 2023-12-03 15:23:22.147000             🧑  作者: Mango

在C/C++中我们可以拥有多少级指针

在C/C++中,我们可以创建多级指针。一个指针变量可以指向另一个指针变量,这就形成了指针的链表,链表的长度就是指针的级数。

一级指针

一级指针是指向一个数据对象的指针。我们可以使用*运算符来解引用一级指针,访问该指针所指向的数据对象。

int x = 5;
int *p1 = &x;    // 定义一个指向x的指针
*p1 = 10;        // 解引用p1,将x的值设置为10
二级指针

二级指针是指向一个指向数据对象的指针的指针。我们可以使用两个*运算符来解引用二级指针,访问它指向的指针所指向的数据对象。

int x = 5;
int *p1 = &x;      // 定义一个指向x的指针
int **p2 = &p1;    // 定义一个指向p1的指针
**p2 = 10;         // 解引用p2和p1,将x的值设置为10
三级指针

三级指针是指向一个指向指向数据对象的指针的指针的指针。我们可以使用三个*运算符来解引用三级指针,访问它指向的指向指针所指向的数据对象。

int x = 5;
int *p1 = &x;        // 定义一个指向x的指针
int **p2 = &p1;      // 定义一个指向p1的指针
int ***p3 = &p2;     // 定义一个指向p2的指针
***p3 = 10;          // 解引用p3、p2和p1,将x的值设置为10
更高级别的指针

在理论上,我们可以创建任意级别的指针。也就是说,我们可以定义一个指向指向指向...指向数据对象的指针的指针...的指针的指针。

然而,在实际编程中,我们很少需要这么高的级数。直到三级指针,很少有情况需要使用。过多的指针层次可能导致程序逻辑上的复杂性和编码难度的增加。

总结
  • 在C/C++中,我们可以创建多级指针。
  • 一级指针是指向数据对象的指针。
  • 二级指针是指向指向数据对象的指针的指针。
  • 三级指针是指向指向指向数据对象的指针的指针的指针。
  • 在实际编程中,很少需要使用高级别的指针。