定义链表节点结构体的时候,以下定义方法是错误的:
typedef struct link_node
{
datatype info;
node *next;
}node;
因为在定义这个结构体的时候,使用了自定义语句,将struct link_node同等为node,但是在定义next指针变量的时候,系统时一行一行读代码,所以系统并不认识node这个东西,所以会发生错误,只有在定义了node之后才可以使用node这个东西。
typedef struct link_node
{
datatype info;
struct link_node *next;
}node;
正确的应该是这样!
总之记住struct link_node和node就是一个东西,只不struct link_node比node先定义了一点而已,所以struct link_node *next;这条语句理论上用谁都一样,只不过要是用了node的话这时候系统还不认识node,所以只能用struct link_node了!
所以不必纠结于这个问题。