- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构一种数重据类型1
第9章 结 构;§9.1 结构变量;结构类型的定义
格式 struct 结构类型名
{成员表列};;9.1.2 结构变量的定义和引用;(2)定义结构类型时同时定义结构体变量
格式 struct 结构类型名
{成员表列}变量表列;;2. 结构类型变量的引用;例9-2 在工资管理系统中,工资项目有编号、姓名、基本工资、奖金、保险、实发工资。输入职工人数n,再输入每个职工的前5项信息,计算并输出实发工资。
其中,实发工资=基本工资+奖金–保险;3. 结构体类型变量初始化;4.整体赋值 结构名1=结构名2;
如 student1=student2;
注 赋值号=的左右的结构类型要一致,所有的成员一一对应赋值;结构可以嵌套,即结构的分量又是一个结构的变量;例 若学生的信息构成如下图,请为其定义合适的数据类型;9.1.4 结构变量作为函数的参数;9.2 结构数组;9.2.2 结构数组的初始化;例9-4 建立有10个学生的结构记录,输出平均分数,并从高到低输出成绩。;9.4 结构指针
结构变量指针结构变量的地址
指向结构变量的指针指针变量的值为结构变量的地址;2. 结构指针对结构分量访问
格式 (*指针名).分量名 或 指针名-分量名;例 对于以下的变量定义,表达式______不符合C语言语法。
struct node {int len; char *pk; } x = {2, right}, *p=x;
A、p-pk B、*x.pk C、*p-pk D、*p.pk ;3. 指向结构数组的指针
指向结构数组的指针指针变量的值为结构数组元素的地址 ;#include stdio.h
#include string.h
void main()
{struct student
{int num;
char name[20];
int score;
};
struct student stud[10],*p;
int i,sum=0;
for(p=stud;p=stud[9];p++)
{scanf(%d%s%d,p-num,p-name,p-score);
sum=sum+p-score;
}
printf(aver=%d\n,sum/10);
};4. 结构指针作为函数参数;#define N 10
struct student{
int num;
char name[20];
int score;
char grade;
};
void main()
{
struct student stu[N], *ptr;
ptr = stu;
/* 输入 略 */
count = set_grade(ptr);
…
};例9-1 构建简单的手机通讯录
联系人的基本信息:姓名、年龄和联系电话
最多容纳50名联系人的信息
具有新建和查询功能;/*新建联系人*/
void new_friend(struct friends_list friends[ ])
{
struct friends_list f;
if(count==50){
printf(通讯录已满!\n);
return;
}
printf(请输入新联系人的姓名:);
scanf(%s, );
printf(请输入新联系人的年龄:);
scanf(%d, f.age);
printf(请输入新联系人的联系电话:);
scanf(%s, f.telephone);
friends[count] = f;
count++;
};/*查询联系人*/
void search_friend(struct friends_list friends[ ], char *name)
{ int i, flag=0;
if(count==0)
{ printf(通讯录是空的!\n);
return;
}
for(i=0;icount;i++)
if(strcmp(name, friends[i].name)==0) /* 找到联系人*/
{flag=1;break;}
if(flag)
{ printf(姓名: %s
文档评论(0)