Зачем использовать ключевое слово struct вместе с именем структуры в связанном списке для создания указателя узла - PullRequest
0 голосов
/ 18 октября 2018
struct linklist
{
    int data;
    struct linklist *next;
}

Зачем использовать struct linklist перед *next?Можно создать указатель просто с помощью *node?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Возможно иметь функцию и структуру с одним и тем же именем.Чтобы разделить их, вы должны использовать ключевое слово struct.

E.g.

struct l {
    int b;
};

void l(struct l &a) {
    a.b = 5;
}

int main () {
    struct l a;
    l(a);

    return 0;
}

В этом случае вы не можете пропустить ключевое слово struct.Но это особый случай, который вы можете найти в более старых исходных кодах.

Также в c вам нужно использовать ключевое слово.Таким образом,

struct l {};

int main() {
    struct l a;
}

является допустимым кодом c и c ++, но

struct l {};

int main() {
    l a;
}

является только допустимым кодом c ++.

Обычно вам не нужно это ключевое слово в c ++.

0 голосов
/ 18 октября 2018

Почему мы используем struct linklist перед '* next'

Вам не нужно использовать здесь сложный спецификатор типа.Поэтому я полагаю, что вы используете его, потому что можете.

Или, возможно, вы намереваетесь использовать структуру через границы языка, и в этом случае вы используете ее, потому что необходимо использовать ее в C.

...