##结构
1.结构的声明
struct{
int number;
char name;
int age;
}student1,student2;//名称加在最后,此时就是定义了两个有三个相同元素的结构体
2.初始化
对应传值
3.访问结构中的元素,如
student.age
student->age
4.因为是结构变量,故可以作为左值,可被修改,如student1.age++
5.&student1.age表示取student1.age的地址
6.可以整个结构进行赋值student2=student1,两结构要在同时声明
7.不可以运用==,!=运算结构
8.声明结构标记
struct student{
int number;
char name;
int age;
};
此时student相当于一个结构标记,再次声明其他结构可以
struct student student1,student2;
等价于
typedef struct{
int age;
char name;
}student;
9.打印结构函数
10.结构作为函数返回值
struct student build_student{
struct student st;//创造一个新的结构
st.number=number;
strcpy(st.name,name);
st.age=age;//将st的每个元素初始化为student中的
return st;
}
有了这个程序就可以在建立学生档案时调用函数创造一个独立的结构
11.定义指向整个结构的指针
struct student *struct_pointer;//指针类型必须是struct student
12.结构嵌套
struct student{
struct student_birth birthday;//以结构标记定义一个与新的student_birth同类型的结构
int age;
char name;
}
//在这种定义下,birthday是空的结构,要对其赋值可以
student.birthday.year=2029;
13.结构数组
定义
struct student students[4];
访问
students[1].age=18;
初始化
struct student students[4]={
[0]={,,},//注意是逗号
[1]={,,},
...
};//作为一个语句结尾别忘了加;