1.本章学习总结
1.1学习内容总结
结构体的定义
- 一般形式为:
struct 结构名{
类型名 结构成员名1;
类型名 结构成员名2;
…
类型名 结构成员名n;
};
struct是定义结构类型的关键字,在struct之后,自行命名一个结构名,它必须是一个合法的C标识符。
例如:
struct student {
int num;
char name[10];
int computer, english, math;
double average;
};
结构体的赋值
- 对结构变量初始化
struct student s1={101,"zhang",78,87,85};
- 结构变量整体赋值
如果两个结构变量具有相同的类型,则可以将一个结构变量的值赋给另一个结构变量。s2.num=s1.num; strcpy(s2.num,s1.num);
结构体数组排序做法
- 例:学生成绩排序
结构体指针用法
- 结构指针
定义:
struct student s1={101,"zhang",78,87,85},*p;
p=&s1;
-
结构指针访问结构成员
(1)用*p访问结构成员
(*p).num=101;
(2)用指向运算符->访问指针指向的结构成员
p->num=101;
-
结构指针作为函数参数
其中第一个形参就是结构指针,调用语句:pos= update_score(students, n,num,course,score);
对应的实参是结构数组名students。
共用体、枚举类型做法
- 共用体定义:
union 共用体名{
成员列表
};
- 结构体和共用体的区别:
1.结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。
2.结构体占用的内存大于等于所有成员占用的内存的总和,共用体占用的内存等于最长的成员占用的内存。
3.共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。 - 枚举类型的定义:
enum
枚举名
{
枚举值表
};
例如:
enum typeName{
valueName1,
valueName2,
valueName3,
......
};
- 注意:
1.枚举列表中的valueName1,valueName2,valueName3这些标识符的作用范围是全局的,不能再定义与它们名字相同的变量。
2.valueName1,valueName2,valueName3等都是常量,不能对它们赋值,只能将它们的值赋给其他的变量。
1.2本章学习体会
- 本章学习结构体及文件,内容多而且比较难理解,书上的知识点也没有完全理解,写的时候比较生疏,要不停的翻书。
- 这次代码量很少,400行左右。
2.综合作业--“我爱成语”
2.1文件介绍
头文件idiom.h
- 用于定义结构体USER和IDI以及所有函数声明。
函数实现文件介绍
文件1 idiom.cpp
- 用于ListMenu()函数,LoginUser()函数和ArrayLiat()函数的实现
文件2 idiomMain.cpp
- 主要做打开文件和函数调用,数据输入输出处理。
文件3 Login.cpp
- 用于GetChioce()函数和CheckUserValid()函数的实现
运行结果