在C语言中定义一个结构体,要最好使用typedef,使用typedef,实际上就是为我们的结构体起了一个新的名字,即定义了一个新的类型,在后面书写自己代码的时候,就可以直接使用自己定义的新的类型第一变量。
例如
#include<stdio.h> typedef struct { int num; struct Node *next; }Node; int main() { Node n; n.num=111; printf("%d",n.num); return 0; }
通过使用Typedef,我们定义结构体为新的结构类型——Node,后面使用时,可以直接使用Node定义变量。
#include<stdio.h> struct Node { int num; struct Node *next; }; int main() { struct Node n; n.num=111; printf("%d",n.num); return 0; }
但是,没有typedef时,我们在后面声明变量时,一定要指明Node是一个结构体,否则,编译器不知道Node类型变量的存在。
总之,在C语言中,typedef就是为struct XX起一个别名,方便后面书写。
但是在C++中,就没有这种要求。
#include<iostream> using namespace std; struct Node { int num; Node *next; }; int main() { Node n; n.num=111; cout<<n.num; return 0; }
可见,在C++中,只要一次声明了结构体作为新的类型,后面便可以直接使用。