user15939950
user15939950

Reputation:

What does Type * foo() mean/return?

I am implementing a Binary Search Tree. And it so happens one of my sources have a function written such that:

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

I already know that a pointer is a variable which contains the address of another variable and we can't assign a value to a pointer, but we can assign the address of another variable to the pointer.

My Question is what the pointers on this prototype do exactly?

Node * BST_Insert(Node *root,int val) 

Upvotes: -2

Views: 144

Answers (2)

nielsen
nielsen

Reputation: 7594

Node is most likely a typedef of a structure representing a node in the Binary Search Tree.

Thus Node *root represents a pointer to the root of the BST, i.e. a handle to the tree structure.

Since insertion of a new node may change which node is the root of the tree, the function most likely returns a pointer to the new root node.

Upvotes: 1

zmadi
zmadi

Reputation: 16

The Pointer is pointing at the address of the returned data, In this case your function returns a Node data type. For example if your function was returning an array you can declare it as Function Pointer to have access to the address of the returned array

Upvotes: 0

Related Questions