结构是一些值的集合,这些值成为成员变量。结构的每个成员可以是不同类型的变量
struct tag
{
member-list;//成员变量
}variable-list;//变量列表
//struct:结构体关键字
//tag:结构体标签
例如:描述一个学生
struct Stu
{
char name[20];//名字
int age;//年龄
char sex[5];//性别
char id[20];//学号
};//分号不可以缺少
结构体的声明:
//声明一个结构体类型
//声明一个学生类型,通过学生类型来创建学生变量(对象)
//描述学生
struct Stu
{
char name[20];
char sex[5];
int age;
char tele[20];
}s4,s5;
struct Stu s3;
//s3,s4,s5是全局变量
struct
{
int a;
int b;
}x;//匿名结构体类型,不能直接创建变量,只能在变量列表里创建
int main()
{
//创建结构体变量
struct Stu s1;//局部变量
struct Stu s2;
return 0;
}
结构体的自引用:结构体里面不能自己包含自己
struct Node
{
int data;
struct Node* next;
};
typedef使用
typedef struct Node
{
int data;
struct Node* next;
}Node;//第二个Node表示自定义类型名,不是结构体变量
结构体变量的初始化及结构体成员的访问:
struct T
{
double weight;
short age;
};
struct S
{
int a;
double b;
char c;
char arr[10];
struct T st;
};
int main()
{
struct S s = { 5,1.3,'c',"hello",{3.4,20} };
printf("%d", s.a);
printf("%lf", s.st.weight);
return 0;
}