8 结构体&共用体
8 结构体&共用体
11侧:输出下表 学号姓名性别数学英语计算机|c语言通信网平均分 101张三 80 98 86 90 88.8 102李四M8289 94 81 91 87.4 103 王五F927886 79 89 84.8 104何六M89 81 78 63 76 774 105周七F98 69 91 85 67 82 106 用什么 ·缺点 按行处理如何定义数据 类型呢? ?stu30]; 2
2 例1:输出下表 学号 姓名 性别 数学 英 语 计算机 C语言 通信网 平均分 101 张三 M 80 90 98 86 90 88.8 102 李四 M 82 89 94 81 91 87.4 103 王五 F 92 78 86 79 89 84.8 104 何六 M 89 81 78 63 76 77.4 105 周七 F 98 69 91 85 67 82 106 … … •用什么样的数据类 型存储?•缺点? •分配内存不集中,寻址效率不高 •对数组进行赋初值时,容易发生 错位 •结构显得比较零散,不容易管理 按行处理如何定义数据 类型呢? ? stu [30];
结构体类型 C语言没有为我们提供相应的数据类型, 但我们可以根据需要自己定义数据~结构类型 根据题意,我们定义如下的结构体的成员 struct !注意: struct student 是一个数据类型
3 结构体类型 ▪ C语言没有为我们提供相应的数据类型, 但我们可以根据需要自己定义数据类型。 ▪ 根据题意,我们定义如下的结构体类型: struct student {int num; char name[20]; char sex; float score[5]; float aver; }; •结构类型 的成员 !!!注意: struct student 是一个数据类型
结构体变量的定义 struct student stu[30] 含义:定义一个一维数组,有30个元素,其 数据类型为 struct student 为了方便后边的使用,我们可以用 typedef 为这个数据类型起个别名, typedef struct student STU STU和其它类型一样使用。 ???下列语句什么含义? STU a; STU stul[30]:
4 结构体变量的定义 ▪ struct student stu[30]; ▪ 含义:定义一个一维数组,有30个元素,其 数据类型为struct student ▪ 为了方便后边的使用,我们可以用typedef 为这个数据类型起个别名, ▪ typedef struct student STU; ▪ STU 和其它类型一样使用。 ◼ ???下列语句什么含义? STU a;STU stu1[30];
内存分配 n共30个数组元素,每个数组元素分配多 少字节? sh可用 sizeof(struct student)求得 stuo1o1张三M8090 98 86 90 88.8 stu1][102李四M828994 81 91 87.4 stu2]103王五F9278:6 79 89 84.8 su3]104何六M89 81 78 63 76 77 stu4105周七F|m1 85 67 82 106 那每个学生的学 号、姓名、∴又 如何表示呢?
5 内存分配 ▪ 共30个数组元素,每个数组元素分配多 少字节? ▪ 可用sizeof(struct student )求得. 101 张三 M 80 90 98 86 90 88.8 102 李四 M 82 89 94 81 91 87.4 103 王五 F 92 78 86 79 89 84.8 104 何六 M 89 81 78 63 76 77.4 105 周七 F 98 69 91 85 67 82 106 … … stu stu[0] stu[1] stu[2] stu[3] stu[4] …… •那每个学生的学 号、姓名、…又 如何表示呢?