我遇到了一些c ++链表实现的代码。
struct node
{
int info;
struct node *next;
}*start;
这对于*start
而不仅仅是start
??
以后像这样使用会发生什么? s
意味着它在函数的其他任何地方都没有被引用?
struct node *temp, *s;
temp = new(struct node);
答案 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
- 关键字。