c ++结构名称中的指针

时间:2017-11-17 18:45:11

标签: c++

我遇到了一些c ++链表实现的代码。

struct node
{
    int info;
    struct node *next;
}*start;

这对于*start而不仅仅是start ??

意味着什么

以后像这样使用会发生什么? s意味着它在函数的其他任何地方都没有被引用?

struct node *temp, *s;
temp = new(struct node); 

1 个答案:

答案 0 :(得分:6)

片段

struct node
{
    int info;
    struct node *next;
}*start;

相当于

struct node
{
    int info;
    struct node *next;
};
struct node *start;

因此,在第一个片段中,您将在一个语句中定义名为node的结构和类型为start的名为struct node *的变量。这就是全部。

请注意,在C ++中(与C不同),您也可以编写

struct node
{
    int info;
    node *next;
};
node *start;

即。在定义struct类型的变量时,您可以省略struct node - 关键字。