Cú pháp “struct * struct newStruct (int somedata) {}” trong c ++ [trùng lặp] là gì

Nov 16 2020

Tôi đang cố gắng tạo một cái cây bằng c ++ và gặp mã này, điều này thực sự khiến tôi bối rối.

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*gì? Một số loại cấu trúc, nhưng một con trỏ? Cũng không nên có cấu trúc ;ở cuối? Ví dụ, node;ở cuối phần thân nhưng không node*?

Trả lời

1 nvjsingh Nov 16 2020 at 03:43

struct node*là kiểu trả về của hàm newNode()chứ không phải là định nghĩa. Dòng bạn đang đề cập đến là chữ ký của hàm newNode. Tiếp theo là định nghĩa hàm giữa hai dấu ngoặc nhọn {}. Định nghĩa hàm không cần dấu ;ở cuối.