数据结构中关于链表定义,为什么定义指针域要用struct node *next,
发布网友
发布时间:2022-06-01 17:55
我来回答
共1个回答
热心网友
时间:2023-10-10 07:34
typedef struct node
{
int data;
struct node *next;
}stacknode,*linkstack;
typedef将stacknode定义成了结构体类型,将linkstack定义成了指向结构体stacknode的指针类型,它们现在都是一种类型了(同基本类型int等一样),当然可以用它们来定义变量。
至于为什么定义指针域要用struct node *next;而不能用stacknode *next;或linkstack next;因为定义指针域在上面,而定义类型是在下面。在定义指针域的时候,stacknode和linkstack还都不是一种类型。追问还有一个问题就是:为什么用可以用 linkstack + 函数名{} 来定义函数的返回类型呢,linkstack不是地址吗?
追答看来你还是没看懂。typedef以后, linkstack已经是一种类型了,一种专门保存结构体stacknode(也就是struct node)的地址的类型。它是一种类型了,当然可以指定为函数的返回类型。