📜  C语言中的双指针(指针到指针)

📅  最后修改于: 2021-05-25 19:00:17             🧑  作者: Mango

先决条件:C和C++中的指针

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

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

int **ptr;    // declaring double pointers

下图说明了双指针的概念:

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

让我们在以下程序的帮助下更清楚地了解这一点:

#include 
  
// 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
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。