结构体
struct node
{
int data;
char sex;
}s1,s2; //-------------变量s1,s2
typedef struct node
{
int data;
char sex;
}SS; //-------------类型名SS
结构体指针
typedef struct node
{
int data;
struct node* next; //-------------定义的同时使用
};*pointer;
等价于
typedef struct node* pointer
{
int data;
pointer next; //-------------定义的同时使用
};
等价于
struc
t node
{
int data;
struct node *next;
};
typedef struct node* pointer;//----------常见的定义方式
(搬运自https://www.cnblogs.com/cc1997/p/9547335.html)
开始很好奇为什么声明链表的结点要用结构体指针来声明而不是结构体声明,即假如声明了结构体和结构体指针:``
typedef struct Node //定义一个Node类型的结构体并取名为Node
{
Elemtype data;
struct Node* next; //引用之前定义的
}Node;
typedef struct Node* Linklist;
建立或者
创建链表的时候,要声明结构体指针Linklist而不是Node: