什么是 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指向新根节点的指针。
我正在实现二叉搜索树。碰巧我的一个消息来源有一个这样写的函数:
Node * BST_Insert(Node *root, int val)
{
//Body
}
我已经知道指针是一个变量,它包含另一个变量的地址,我们不能给指针赋值,但是我们可以将另一个变量的地址赋给指针。
我的问题是这个原型上的指针到底做了什么?
Node * BST_Insert(Node *root,int val)
指针指向返回数据的地址,在这种情况下,您的函数 returns 是 Node 数据类型。例如,如果您的函数返回一个数组,您可以将其声明为函数指针以访问返回数组的地址
Node
很可能是表示二进制搜索树中节点的结构的 typedef
。
因此Node *root
表示指向BST根的指针,即树结构的句柄。
由于插入新节点可能会改变哪个节点是树的根节点,因此函数很可能returns指向新根节点的指针。