什么是 Type * foo() mean/return?

What does Type * foo() mean/return?

我正在实现二叉搜索树。碰巧我的一个消息来源有一个这样写的函数:

Node * BST_Insert(Node *root, int val)
{
//Body 
}

我已经知道指针是一个变量,它包含另一个变量的地址,我们不能给指针赋值,但是我们可以将另一个变量的地址赋给指针。

我的问题是这个原型上的指针到底做了什么?

Node * BST_Insert(Node *root,int val) 

指针指向返回数据的地址,在这种情况下,您的函数 returns 是 Node 数据类型。例如,如果您的函数返回一个数组,您可以将其声明为函数指针以访问返回数组的地址

Node 很可能是表示二进制搜索树中节点的结构的 typedef

因此Node *root表示指向BST根的指针,即树结构的句柄。

由于插入新节点可能会改变哪个节点是树的根节点,因此函数很可能returns指向新根节点的指针。