1.本章学习总结
1.1 学习内容总结
- 结构体的定义和赋值
一般形式:
struct 结构体名
{
数据类型 成员名1;
数据类型 成员名2;
:
数据类型 成员名n;
};
常用形式:
typedef struct {
类型名 结构成员1;
类型名 结构成员2;
...
}新的变量类型名;
- 结构体数组排序做法
for (i = 0; i < n - 1; i++)
{
index = i;
for (j = i + 1; j < n; j++)
if (students[j].average > students[index].average)
index = j;
temp = students[index];
students[index] = students[i];
students[i] = temp;
}
- 结构体指针怎么用
结构指针就是指向结构类型变量的指针
例:
struct student s1 = { 101,"zhang",78,87,85 }, * p;
p = &s1;
第一条语句定义了struct student类型的变量s1并初始化,另外还定义了一个结构指针变量p;
第二条语句使结构指针p指向结构变量s1。
有了结构指针的定义,既可以通过结构变量s1直接访问结构成员,
也可以通过结构指针变量p间接访问它所指向的结构变量中的各个成员。
(1)用* p访问结构成员
如:
(*p).num = 101;
(*p)中的括号必不可少,因为"."的优先级高于"*"
(2)用指向运算符->访问指针指向的结构成员
如:
p->num = 101;
结构指针作为函数参数
课本为例
例9 - 3
int update_score(struct student* p, int n, int num, int course, int score);
其中第一个形参就是结构指针
对应的实参是结构数组名students。
即将结构数组students的首地址值传递给结构指针p。
经过参数传递后,在函数update_score()中就可以通过结构指针p对结构数组students中的数据进行间接访问操作。
使用结构指针作为函数参数只要传递一个地址值,就可以吧结构成员传过去,极大提高参数传递的效率
- 共用体、枚举类型做法
共用体类型:
union 共用体类型名
{
成员列表
};
枚举类型:
enum weeks{ SUN,MON,TUE,WED,THU,FRI,SAT}; //枚举常量的值 默认 0,1 ,2......
- 文件读写,文件中数据如何读进结构体数组
fp = fopen(" ", "r+");
if (fp == NULL)
{
exit(0)
}
1.2 本章学习体会
1.本章的内容较为复杂,学习难度较大,对于知识点的掌握还不够熟练,需要多练多复习,希望顺利通过期末考。
2.300行+