typedef struct Node{...}LNode;
以上定义中,是不是可以去掉第一个Node?然后依然可以得到新类型LNode
typedef struct Node* Linklist;
以上定义中,既然已经自定义了LNode类型,为什么不这样写:typedef LNode* Linklist;
而还要用 struct Node呢?
typedef struct Node{...}LNode;
以上定义中,是不是可以去掉第一个Node?然后依然可以得到新类型LNode
typedef struct Node* Linklist;
以上定义中,既然已经自定义了LNode类型,为什么不这样写:typedef LNode* Linklist;
而还要用 struct Node呢?
struct //是C中的结构体的关键词。
如: stuct node{
/* node 相当于结构体的类型,关键是!
其实在C中stuct node 才相当于一个数据类型,如int ,所以在才会给初学者的带来困难,如在定一个变量时,要用 struct node xxx,而不是 node xxx 这就是关键。
*/
int a;
.....
} a; //
a是结构体的变量
而 typedef // 是自定义数据类型。
如:typedef int zengshu // 把一个数据类型用一个直观的数据类型名代替,增加程序的可移植性。
而且 typedef struct node {
}A;
则是把 struct node 看做一个数据类型(见关键处),不同的是这个结构体类型的定义也放在后面。 而A则是那个直观的数据类型名,引用的时候更加方便。