第九章结构体、共用体和枚举类型的应用.ppt

第九章结构体、共用体和枚举类型的应用.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运行程序 【实例2】按照表9-1的情况,定义一个结构体数组,输入一个班级的学生信息,要求: (1)分别统计出男生和女生人数; (2)把平均成绩在85分以上的学生找出来,并输出这部分学生的如下信息:姓名、性别、年龄、家庭地址。 #includestdio.h #define N 20 struct student { char num[10]; char name[20]; char sex; int age; float c,vb,os; char add[30]; }; main( ) { struct student b[N]; float flg; int i,m=0,f=0; for(i=0;iN;i++) { printf(please enter sex,age,c,vb,os); scanf(%c,b[i].sex); scanf(%d,b[i].age); scanf(%f,flg); b[i].c=flg; scanf(%f,flg); b[i].vb=flg; scanf(%f,flg); b[i].os=flg; gets(b[i].num); gets(b[i].name); gets(b[i].add); } for(i=0;iN;i++) { if(b[i].sex==m||b[i].sex==M) m++; else f++; if((b[i].c+b[i].vb+b[i].os)/385) printf(%s,%c,%d,%s,b[i].name,b[i].sex,b[i].age,b[i].add);} printf(\n\nboy=%d,girl=%d,m,f); } 第三节 结构体与指针 一、结构体指针变量的定义与应用 struct 结构体标识名 *结构体指针变量名; 1、结构体指针变量定义的一般形式: 例如:struct student *pt,*stud; 说明: 指针变量既可以指向单一的结构体变量, 也可以指向结构体数组。 结构体指针变量名=结构体变量; 2、结构体指针变量的赋值 结构体指针变量名=结构体数组名; 例如: struct student *p1,*p2,a,b[4]; p1=a; p2=b; ① 结构体指针[下标] 或 *(结构体指针+下标) ② 结构体指针[下标].成员 或(结构体指针+下标)-成员 3、结构体指针变量的引用 ① 结构体指针名-成员 ②(*结构体指针名).成员 (1)对指向结构体变量的结构体指针的引用 (2)对指向结构体数组的结构体指针的引用 运行程序 #includestdio.h #includestring.h main() { struct student { char *num,name[20]; float c,vb; } stu,*p; p=stu; p-num=04201; /*通过-引用num*/ strcpy(p-name,Anshili); stu.c=78.5; (*p).vb=83; printf(student No.%s name:%s c:%5.1f vb:%5.1f, p-num,p-name,p-c,p-vb); } 【例9-3】指向结构体变量的结构体指针用法。 第四节 结构体与函数 一、“值传递”方式 向函数传递结构体变量成员(成员不是数组名或指针) 定义函数f1(float x){……} f1(stu.c); 向函数传递结构体变量 f2(stu); 定义函数f2(struct student y){……} 二、“地址传递”方式 向函数传递结构体变量的地址 f3(p) 或f3(stu) 定义函数f3(struct student *z){……} 向函数传递结构体成员的地址或指针 f4(stu.num) 或f5(stu.c) 定义函数f4(char *p){……}或 f5(float *q){……} 三、函数返回值为结构体类型数据 定义函数: struct student f6(struct student x){……} /*定义一个返回值为struct student类型的函数,函数的行参为struct student类型*/ 注意: 调用函数过程中,接收函数值的变量定义为相同struct student类型的变量。 四、函数的返回值为结构体指针类型 定义函数: struct s

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档