第23-4讲 结构体共用体.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第23-4讲结构体

《解析C程序设计》第2章 简单程序设计 第23讲 结构体 * 例8-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 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 stu1[30]; * 内存分配 共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] …… 那每个学生的学号、姓名、…又如何表示呢? * 引用结构体变量的成员 结构体变量的成员(member),也称元素(element)或域(filed)。 使用引用运算符 . 对结构类型变量stu[i]中每个成员进行引用 例: stu[i].num stu[i].name 它们都是变量,与其它同类型变量同样使用。 注意区分: 结构体类型; 结构体变量; 结构体变量的成员 * 例题的实现 算法 定义结构体类型 定义结构体变量 输入 输出 * 例8-1(1) #include stdio.h struct student //名字由两个词构成// {int num; /* 学号 */ char name[20]; /* 姓名 */ char sex; /* 性别:m-男,f-女 */ float score[5]; /* 成绩 */ float aver; /* 平均分 */ }; /* 定义结构体类型 struct student ,一般都定义为全局可用的数据类型*/ typedef struct student STU;/*为数据类型起别名,STU是数据类型*/ void main() { int i,j; float sum; STU stu[30];/* 定义结构体变量 sizeof=(stu)*30*/ * 例8-1(2) for(i=0;i30;i++) /* 输入每个学生的信息 */ {printf(“please input the number\n:”); scanf(“%d”,stu[i].num);getchar(); printf(“please input the name\n:”); scanf(“%s”, stu[i].name);getchar();//name不需取地址// printf(“f or m(female or mail)?\n:”); scanf(“%c”,stu[i].sex); printf(“please input 5 scores:\n:”); for(j=0;j5;j++) /*输入5门课的成绩*/ scanf(“%f”,stu[i].score[j]); sum=0; /*下边计

文档评论(0)

hfenxchuangjv + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档