- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构简介 定义结构1 定义结构2 声明结构变量 声明结构变量 第四种方式 typedef struct { char name[12]; char sex; struct date brthday; float sc[4]; }STREC; STREC std,pers[3],*pstd; 嵌套结构 结构变量初始化 结构变量赋值 使用结构示例 结构指针变量 结构体变量的引用: (1)不能将一个结构变量作为一个整体进行输入和输出.例如已定义st1,st2为结 构体变量并且它们已有值,不能这样引用: printf(“%d,%s,%c,%d,%f,%s\n”,st1);只能对结构体变量中的各个成员分别 进行输入和输出. 结构体变量名.成员名 (2)如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地 找到最低的一级成员,只能对最低级的成员进行赋值或存取以及运算. 例如: student1.birthday.month (3)对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可 以进行的运算). student1.num++ 或++ student1.num 由于.运算符的优先级最高,因此, student1.num++j是对student1.num进行自加运算,面不是先对num进行自 加运算. (4)可以引用结构体变量成员的地址,也可以引用结构体变量的地址.如下: scanf(“%d”,student1.num); //输入student1.num的值 printf(“%x”,student1); //输出student1的首地址) 但不能用以下语句整体读入结构体变量.如: scanf(“%d,%s,%c,%d,%f,%s”,student1); 结构体变量的地址主要用于作函数参数,传递结构体的地址. 在上面的例子中(*pstu).num和(*pstu).name 是pstu指向了结构变量中的成员 num和name.注意*p两侧的括弧不可省,因为成员运算符“ . ”优先于“ * ”运算 符,*pstu.num就等价于*(pstu.num). 请分析以下几种运算符: 1:p-n 得到p指向的结构体变量中的成员n的值 2:p-n++ 得到p指向的结构体变量中的成员n的值,用完该值后使它加1 3:++p-n 得到p指向的结构体变量中的成员n的值使之加1(先加) 结构体数组应用举例2: 对候选人得票的统计程序.设有3个候选人,每次输入一个得票的候选人的名字, 要求最后输出各人得票结果. #includestring.h Struct person { char name[20]; int count; }leader[3]={“Li”,0, “Zhang”,0, “fun”,0,}; main() { int I,j; Char leader_name[20]; For(i=1;i=10;i++) { scanf(“%s”,leader_name); for(j=0;j3;j++) If(strcmp(leader_name,leader[j].name)==0)leader[j].count++; } Printf(“\n”); For(i=0;i3;i++) Printf(“%5s:%d\n”,leader[i].name,leader[i].count); } 结构数组 结构指针变量 指向结构体数组的指针 例题: struct student { int num; Char name[20]; Char sex; Int age; }; Struct student stu[3]={{10101,“Li Lin”,‘m’,18},{10102,“Zhang Fun”,‘m’,19},{10104,“Wang Min”,‘F’,20}}; main() { struct student *p; Printf(“no./t name /t sex /t age \n”); For(p=stu;pstu+3;p++) { printf(“%5d %-20s %2c %4d\n”,p-num,p-name,p-sex,p-age); } } 注意以下两点: 1、如果p的初值为stu,即指向每个元素,则p+1后指向下一元素的起始地址。例如 (++p)-num先使p自加1,然后得到它指向的元素中的num成员值(即10102). (p++)-n
您可能关注的文档
最近下载
- Slide劳里埃大学WilfridLaurierUniversity加拿大留学.ppt VIP
- SEMI-F047-000-0706-en电压暂升暂降标准.pdf VIP
- [内蒙古]商业装饰工程监理规划124页(含装修、消防、弱电等)serfrz.doc VIP
- 2019年高考语文试卷(上海)(春考)(解析卷).pdf VIP
- 第9课 数据传输有新意 义务教育版信息科技七年级.docx VIP
- 张家口煤机630-264刮板输送机使用说明书.pdf VIP
- 通达信指标公式源码 领航主图指标.doc VIP
- 燃气管线施工图设计说明.doc
- 2020年高考语文试卷(上海)(春考)(解析卷).pdf VIP
- 高压断路器检修规程.doc VIP
文档评论(0)