- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第9章_结构体和共用体
struct friends_list{ char name[10]; int age; char telephone[14]; } struct friends_list friend1 = {zhang, 26,; struct friends_list *p; p = friend1; (1) 用*p访问结构成员 (*p).age = 36; (2) 用指向运算符“-”访问指针指向的结构体成员。 p-age = 36; 当p = friend1时,以下三条语句等价: friend1.age = 36; (*p).age = 36; p-age = 36; #include stdio.h #include string.h struct student { int num; char name[20]; char sex; float score; }; void main() { struct student s, *ps=s; s.numstrcpy(s.name,Li); s.sex=M; s.score=89.5; printf(No.:%d Name:%s Sex:%c Score:%f\n, \ s.num,s.name,s.sex,s.score); printf(No.:%ld Name:%s Sex:%c Score:%f\n, \ (*ps).num,(*ps).name,(*ps).sex,(*ps).score); printf(No.:%ld Name:%s Sex:%c Score:%f\n,\ ps-num,ps-name,ps-sex,ps-score); } 9.6 结构体指针 -的优先级高于++ ps-num ps-num++ ++ps-num (++ps)-num 9.6 结构体指针 指向结构体数组的指针 struct student s[10]; struct student *ps=s; #include stdio.h #include string.h struct student { int num; char name[20]; char sex; float score; }; void main() { struct student stu[3]={{10101,“Li”,‘M’,80}, {10102,Xiao,F,90}, {10103,Zhao,F,95}}; struct student *ps; for(ps=stu;psstu+3;ps++) printf(No.:%ld Name:%s Sex:%c Score:%f\n,\ ps-num,ps-name,ps-sex,ps-score); } 9.7 用指针处理链表 链表是一种常见的重要数据结构。它是动态地进行存储分配的一种结构。 而链表可以根据实际需要进行动态地伸缩。 链表有单向链表,双向链表,单向循环链表,双向循环链表等。 9.7 用指针处理链表 链表有一个“头指针”变量,一个链表使用“头指针”来标识。“头指针”为NULL,表示空链表。 链表的每个元素称为“结点”,它包括实际数据和指向下一结点的指针两部分。 最后一个节点指向NULL,表示链表的结束。 要访问每个元素,必须从“头指针”开始,一个一个地访问结点,直至找到所要访问的结点。 9.7 用指针处理链表 例:建立有3个学生数据的链表,输出这些学生的信息。 #include stdio.h struct student { int num; float score; struct student *next; }; void main() { struct student stu1,stu2,stu3; struct student *head,*p; stu1.num =10101;stu1.score =90; stu2.num =10102;stu2.score =88; stu3.num =10103;stu3.score =78; stu1.next =stu2; stu2.next =stu3; stu3.next =NULL; head=stu1; p=head; do{ printf(No.:%d Score:
文档评论(0)