结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。
struct tag{
member -list
}variable -list;
//此声明 拥有3个成员的结构体,分别为整型的a,字符型b和双精度的C
//同时又声明了结构体变量s1
//这个结构体并没有标明其标签
struct{
int a;
char b;
double c;
} s1;
//结构体的标签被命名为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;
//第一个声明和第二个声明被编译器当作完全不同的类型,即使它们的成员列表是一样的,如果令t3 = &s1,则是非法的。
//结构体的成员可以包含其他结构体,也可以包含自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树
//此结构体的声明包含了其他的结构体
struct COMPLEX{
char string[1000];
struct SIMPLE a;
};
//此结构体的声明包含了指向自己类型的指针
struct NODE{
char string[100];
struct NODE *next_node;
};
//如果两个结构体相互包含,则需要对其中一个结构体进行不完全声明,如下所示:
struct B;
//对结构体B进行不完全声明
//结构体A中包含指向结构体B的指针
struct A{
struct B *partner;
//other member;
};
//结构体B中包含指向结构体A的指针。在A声明完后,B也随之进行声明
struct B{
struct A *partner;
//other members
};
结构体的定义
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在面向接口、面向对象编程的过程中,会遇到实际物体类别与定义类别相分离的情况。 例如,我们有三种物体,他们的固有类别...