1. 主页
  2. 文档
  3. C语言教程
  4. C语言指针
  5. C中的双指针

C中的双指针

我们已经知道指针指向内存中的一个位置,因此用于存储变量的地址。所以,当我们定义一个指向指针的指针时。第一个指针用于存储变量的地址。第二个指针用于存储第一个指针的地址。这就是为什么它们也被称为双指针。

如何在C中声明指向指针的指针?
声明指向指针的指针类似于在 C 中声明指针。不同之处在于我们必须在指针名称之前放置一个额外的“*”。
语法

int **ptr; // 声明双指针

下图解释了双指针的概念:

上图显示了指向指针的指针的内存表示。第一个指针ptr1 存储变量的地址,第二个指针ptr2 存储第一个指针的地址。

让我们借助以下程序更清楚地理解这一点:

#include <stdio.h>

// C program to demonstrate pointer to pointer
int main()
{
int var = 789;

// pointer for var
int *ptr2;

// double pointer for ptr2
int **ptr1;

// storing address of var in ptr2
ptr2 = &var;

// Storing address of ptr2 in ptr1
ptr1 = &ptr2;

// Displaying value of var using
// both single and double pointers
printf("Value of var = %d\n", var );
printf("Value of var using single pointer = %d\n", *ptr2 );
printf("Value of var using double pointer = %d\n", **ptr1);

return 0;
} 

输出:

Value of var = 789
Value of var using single pointer = 789
Value of var using double pointer = 789
这篇文章对您有用吗?