苏嵌暑期实训----day5
姓名:祝俊宝 日期:2018.07.13
今日学习任务 |
1、结构体 2、共用体 3、编写学生信息系统 |
今日任务完成情况编写了 |
1、完成了结构体的学习,编写了有关结构体的定义,声明,初始化的函数 2、 完成了有关结构体长度的学习 3、完成了共用体的学习,编写了有关共用体声明,初始化的函数 |
今日开发中出现的问题汇总 |
1、如何对结构体进行初始化,有哪几种方法 2、结构体在内存中存放的规则 3、理解链表 |
今日未解决问题 |
结构体长度如何计算 堆栈的含义与区别 大端小端的含义与区别以及如何如何进行转换 学生信息系统的编写 |
今日开发收获 |
1、声明结构体的一般形式 struct 结构体名 {成员表列} struct 结构体声明 student 结构体名 { … } 成员列表,花括号最后一定要加” ; ” struct student 相当于一种新的数据类型可声明结构体变量如: struct student a; |
2、初始化
struct student s1 = {“snail”,“mail”,23, 99};
也可以这样初始化
strcpy(s1.name,”snail”);
s1.sex = “mail”;
s1.age = 3;
s1.score= 99;
//通过指针访问
struct student *s2 = NULL;
s2 = (struct student *) malloc(sizeof(structstudent) * 64); //指针必须初始化,给它分配
//一个合法内存
strcpy(s2->name,”snail”);
s2->sex = “mail”;
s2->age = 3;
s2->score = 99;
3、结构体长度
两个原则
1、结构体总长度一定是最长成员的整数倍(double仍算4个字节)
2、每个成员的偏移量一定是该成员长度的整数倍
(偏移量:距离结构体开始位置的长度 )
注:结构体在内存中是连续存储的
需要字节对齐
如:
structstudent{
short a;
char b;
char e;
char f;
short c;
int d;
}; //长度为12
structstudent{
short a;
char b[5];
char e;
char f;
short c;
int d;
}; //长度为16
4、堆栈的区别
栈空间是操作系统管理的,由操作系统分配,由操作系统释放
堆空间是程序员管理的,由程序员分配,由程序员释放
5、字节序6、大小端转换
7、学生信息系统
int main()
74 {
75 char choice[10] = {0};
76 stu student[SIZE] = {0};
77
78 while(1)
79 {
80 menu();
81
82 scanf("%s",choice);
83
84 switch(atoi(&choice[0]))
85 {
86 case 1:
87 AddInfo(student);
88 break;
89
90 case 2:
91 ShowInfo(student);
92 break;
93
94 case 3:
95 DeleteInfo(student);
96 break;
97
98 case 4:
99 ModifyInfo(student);
100 break;
101
102 }
103 }
104
105 }
自我评价
今天学习状态很好,学习了很多东西,但也遇到了很多问题,感谢老师悉心教导。其他老师讲课速度略快,有点跟不上。