结构体链表定义时,指针前为什么要加 struct?

比如:
struct Node
{
int data;
struct Node * next;
};
去掉struct Node *next中的struct呢?

在结构体定义过程中使用Node的时候,实际上Node这个结构体还没定义完,所以要用struct声明一下,Node是一个结构体。
如果在定义完后再引用Node,就不要加strcut了。追问

如果节点是class定义的就不需要加class了,为什么?

追答

C++编译器一般没有这个约束,C里面会有的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-18
C不行,C++可以,

C++ struct和class 差不多意思追问

如果节点是class定义的就不需要加class了,为什么?

追答

class 本来定义一个对象就不用添加class 关键字.

你写C语言,也完全可以用C++编译
struct student{
int data;
student * next;
};

g++ test.c -o a.bin

一样可以的。但用C编译器就不行。

本回答被提问者采纳
第2个回答  2020-06-13
貌似用了二级指针,char
*p,中的*是指针变量,*p中*是取p指向变量的值,&p是取p的地址值
第3个回答  2011-12-18
根据编译器不同,可能通过 也可能不通过!
第4个回答  2011-12-18
可以去掉,不影响
相似回答