结构体声明的基本形式:struct tag {member-list} variable-list;
1.
1.1 声明变量
struct {
int a;
char b;
}x;
声明创建了一个叫x的变量,没有创建类型,所以不能再定义其他的变量。
区别:
typedef struct {
int a;
char b;
}x;
声明创建了一个叫x的类型,可以再定义其他的变量。
1.2 声明数组和指针
struct {
int a;
char b;
}y[20], *z;
y,z和x的类型不一样,z=&x 是非法的
2. 声明标签
struct STMPLE{
int a;
char b;
};
struct STMPLE 用来标识未来的变量,例:
struct STMPLE x;
struct STMPLE y[20],*z;
注:x,y,z是同一种类型的结构变量
3.不完整的声明
struct B;
struct A{
struct B;
};
struct B{
struct A;
};