目录
1.结构体类型的声明
1.1基础知识
1.结构
结构是一些值的集合,这些值成为成员变量。结构的每个成员可以是不同类型的变量。
2.结构成员的类型
结构的成员可以是标量,数组,指针,甚至是其他结构体。
1.2结构的声明
声明方式
struct tag
{
member-list; //成员变量
}variable-list; //此处定义的变量是全局变量
举个例子
struct stud
{
char name[20];
short age;
char sex[5];
} ; //分号不能丢
1.3特殊声明
在声明结构的时候,可以不完全的声明。
下面代码为匿名结构体l类型的声明(声明时省略了标签tag)。对于这种结构体一定要在声明后直接创建变量,因为该结构体没有名字,无法在使用时创建变量
//匿名结构体
struct
{
int a;
char b;
}sa;
struct
{
int a;
char b;
}* psa;
int main()
{
psa = &sa;
return 0;
}
上述代码中 psa=&sa 不合法;
虽然上述两个声明成员变量完全一致,但编译器将其当作完全不同的两个类型。
2.结构体变量的定义和初始化
有了结构体类型,该如何定义变量并初始化呢?
1.定义变量
struct point
{
int x;
int y;
}p1; //声明完直接定义p1
struct point p2; //使用时再定义p2
2.初始化:定义变量的同时赋初值
struct stu
{
char name[20];
int age;
};
struct stu s1 = {
"张三",20 };
struct node
{
int data;
struct point p; //结构体嵌套
struct node* ps;
};
struct node n = {
10,{
4,5},NULL };