C ++의 "struct * struct newStruct (int somedata) {}"구문은 무엇입니까?

Nov 16 2020

나는 C ++로 트리를 만들려고했는데이 코드를 발견했는데 정말 혼란 스러웠다.

struct node
{
    int data;
    struct node* left;
    struct node* right;
};

// The code bellow this is the part i dont understand
struct node* newNode(int idata)
{
    node* node = new struct node;
    node->data = idata;
    node->left = NULL;
    node->right = NULL;
    return node;
}

무엇 struct node*입니까? 어떤 종류의 구조이지만 포인터? 또한 구조체는 ;끝에 있어야하지 않습니까? 예를 들어, node;몸의 끝에서가 아니라 node*?

답변

1 nvjsingh Nov 16 2020 at 03:43

struct node*함수의 반환 유형이며 newNode()그 자체는 정의가 아닙니다. 참조하는 라인은 함수의 시그니처입니다 newNode. 두 개의 중괄호 {} 사이에 함수 정의가옵니다. 함수 정의는 ;끝에 가 필요하지 않습니다 .