c ++ [duplicate] "struct * struct newStruct (int somedata) {}" sözdizimi nedir

Nov 16 2020

C ++ 'da bir ağaç yapmaya çalışıyordum ve gerçekten kafamı karıştıran bu kodla karşılaştım.

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;
}

nedir struct node*? Bir tür yapı ama bir işaretçi? Ayrıca yapıların ;sonunda olmamalı mı? Örneğin, nodesahip ;gövdenin ucunda değil node*?

Yanıtlar

1 nvjsingh Nov 16 2020 at 03:43

struct node*işlevin dönüş türüdür newNode()ve kendi başına bir tanım değildir. Bahsettiğiniz satır, fonksiyonun imzasıdır newNode. Bunu, iki kaşlı ayraç {} arasındaki işlev tanımı izler. Bir fonksiyon tanımının ;sonunda a'ya ihtiyacı yoktur .