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

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

null

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

如何在C中声明指向指针的指针? 声明指向指针的指针类似于在C中声明指针。区别在于我们必须在指针的名称前加上一个“*”。 语法 :

int **ptr;    // declaring double pointers

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

图片[1]-C语言中的双指针(指针到指针)-yiteyi-C++库

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

图片[2]-C语言中的双指针(指针到指针)-yiteyi-C++库

通过以下程序,让我们更清楚地了解这一点:

#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
相关帖子: C语言中的函数指针

本文由 严酷的阿加瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享