先决条件: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基础课程》。