很长一段时间以来,我在C语言中遇到了指针问题,我无法弄清楚它们何时工作,何时使用指针,如何将指针传递给函数以及为什么要传递指针,我正在阅读有关指针指针的许多答案,但我没有理解。任何人都可以请它使它易于理解和感谢。
这是一个代码示例,我不明白为什么使用指针的指针然后使用指针的地址使我发疯!
insert(int key, struct node **leaf)
{
if( *leaf == 0 )
{
*leaf = (struct node*) malloc( sizeof( struct node ) );
(*leaf)->key_value = key;
/* initialize the children to null */
(*leaf)->left = 0;
(*leaf)->right = 0;
}
else if(key < (*leaf)->key_value)
{
insert( key, &(*leaf)->left );
}
else if(key > (*leaf)->key_value)
{
insert( key, &(*leaf)->right );
}
如我所见,指针包含变量的地址,而指针的指针包含指针的地址。