c+中的指针+;结构名 我为C++链表实现了这段代码。 struct node { int info; struct node *next; }*start;

c+中的指针+;结构名 我为C++链表实现了这段代码。 struct node { int info; struct node *next; }*start;,c++,C++,这意味着有*start而不仅仅是start 以后像这样使用会发生什么?s是什么意思,它在函数的其他地方没有被引用 struct node *temp, *s; temp = new(struct node); 碎片 struct node { int info; struct node *next; }*start; 相当于 struct node { int info; struct node *next; }; struct node *start;

这意味着有
*start
而不仅仅是
start

以后像这样使用会发生什么?
s
是什么意思,它在函数的其他地方没有被引用

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

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;

i、 e.定义类型为
struct node

的变量时,可以省略
struct
-关键字提示:这与您编写的相同:
node*start
;之后。所以,如果该声明在类定义之外,则start只是指向节点的无主指针?我不会说无主,但是的,未初始化。我建议忽略此示例
struct node{}
创建一个名为
node
的类型(与C不同),并且
node
可以在不重复
struct
或使用
typedef
的情况下使用。另外,
}*start
声明一个全局变量
start
,它是指向
节点的指针(忽略此示例的另一个原因)。这就是为什么在
struct/class/union
声明之后需要分号的原因-可能存在变量列表。虽然它在C++ + NoVADDE中很少使用。