先决条件: C和C++中的指针
null
我们已经知道,指针指向内存中的一个位置,因此用于存储变量的地址。所以,当我们定义一个指向指针的指针时。第一个指针用于存储变量的地址。第二个指针用于存储第一个指针的地址。这就是为什么它们也被称为双指针。
如何在C中声明指向指针的指针? 声明指向指针的指针类似于在C中声明指针。区别在于我们必须在指针的名称前加上一个“*”。 语法 :
int **ptr; // declaring double pointers
下图解释了双指针的概念:
上图显示了指针到指针的内存表示形式。第一个指针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" , var ); printf ( "Value of var using single pointer = %d" , *ptr2 ); printf ( "Value of var using double pointer = %d" , **ptr1); return 0; } |
输出:
Value of var = 789 Value of var using single pointer = 789 Value of var using double pointer = 789
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END