c博客06-结构体&文件

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行+

原文地址:https://www.cnblogs.com/my-sky-2019/p/12046366.html