结构体定义
定义结构体数据类型及变量的几种方式
//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c //同时又声明了结构体变量s1 //这个结构体并没有标明其标签 struct { int a; char b; double c; } s1; //此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c //结构体的标签被命名为SIMPLE,没有声明变量 struct SIMPLE { int a; char b; double c; }; //用SIMPLE标签的结构体,另外声明了变量t1、t2、t3 struct SIMPLE t1, t2[20], *t3; //也可以用typedef创建新类型 typedef struct { int a; char b; double c; } Simple2; //现在可以用Simple2作为类型声明新的结构体变量 Simple2 u1, u2[20], *u3;
而以下这种方式也时常见到
typedef struct QNode { QElemType data; //数据域 struct QNode *next; //指针域 }QNode,*QueuePtr;
首先阐述关键字typedef的含义:
typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)
将以上代码段分解:
typedet struct QNode QNode //将结构体类型struct QNode重命名为QNode typedet struct QNode * QNode //将类型名struct QNode *重命名为QNode
注意,在之后的过程中依然可以用struct QNode来定义变量,且与QNode定义的变量类型相同
因此
QNode N; //等价于struct QNode * N;
浙公网安备 33010602011771号