《结构体与链表》PPT课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《结构体与链表》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《结构体与链表》PPT课件.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、结构体与链表结构体和指针指向结构体变量的指针定义形式:struct 结构体名 *结构体指针名;例 struct student *p;存放结构体变量在内存的起始地址numnamesexagestupstruct student int num;char name20;char sex;int age;stu;struct student *p=&stu;使用结构体指针变量引用成员形式例 int n;int *p=&n;*p=10;n=10struct student stu1;struct student *p=&stu1;stu1.num=101;(*p).num=101(*结构体指针名).
2、成员名结构体指针名结构体指针名-成员名成员名结构体变量名.成员名表示指向的运算符优先级:1结合方向:从左向右三种基本形式:结构体变量.成员名 (*p).成员名 p-成员名main()struct student long int num;char name20;char sex;float score;stu_1,*p;p=&stu_1;stu_1.num=89101;strcpy(stu_1.name,Li Lin);p-sex=M;p-score=89.5;printf(nNo:%ldnname:%snsex:%cnscore:%fn,(*p).num,p-name,stu_1.sex,p
3、-score);例例 子子结构体变量作为函数参数用结构体变量的成员作实在参数-值传递用指向结构体变量或数组的指针作参数-地址传递用结构体变量作参数-多值传递,效率低用结构体变量作函数参数void func(struct data);struct data int a,b,c;main()struct data arg;arg.a=27;arg.b=3;arg.c=arg.a+arg.b;printf(arg.a=%d arg.b=%d arg.c=%dn,arg.a,arg.b,arg.c);printf(Call Func().n);func(arg);printf(arg.a=%d arg
4、.b=%d arg.c=%dn,arg.a,arg.b,arg.c);void func(struct data parm)printf(parm.a=%d parm.b=%d parm.c=%dn,parm.a,parm.b,parm.c);printf(Process.n);parm.a=18;parm.b=5;parm.c=parm.a*parm.b;printf(parm.a=%d parm.b=%d parm.c=%dn,parm.a,parm.b,parm.c);printf(Return.n);arga:27b:3c:30(main)arga:27b:3c:30(main)(fu
5、nc)parma:18b:5c:90arga:27b:3c:30(main)arga:27b:3c:30(main)(func)parma:27b:3c:30用结构体指针变量作函数参数struct data int a,b,c;main()void func(struct data *parm);struct data arg;arg.a=27;arg.b=3;arg.c=arg.a+arg.b;printf(arg.a=%d arg.b=%d arg.c=%dn,arg.a,arg.b,arg.c);printf(Call Func().n);func(&arg);printf(arg.a=
6、%d arg.b=%d arg.c=%dn,arg.a,arg.b,arg.c);void func(struct data *parm)printf(parm-a=%d parm-b=%d parm-c=%dn,parm-a,parm-b,parm-c);printf(Process.n);parm-a=18;parm-b=5;parm-c=parm-a*parm-b;printf(parm-a=%d parm-b=%d parm-c=%dn,parm-a,parm-b,parm-c);printf(Return.n);arga:18b:5c:90(main)(func)parm*arga:
7、27b:3c:30(main)(func)parm*arga:27b:3c:30(main)arga:18b:5c:90(main)链表指针与结构的综合链表是程序设计中一种重要的动态数据结构,动态性体现为:链表中的元素个数可以根据需要增加和减少,不像数组,在声明之后就固定不变;元素的位置可以变化,即可以从某个位置删除,然后再插入到一个新的地方;链表中的元素称为“节点”,每个节点包括两个大的部分:数据部分和指向其它节点的指针;单向链表通常有一个头指针,用于指向链表头;单向链表有一个尾节点,该节点的指针部分指向一个空节点,空节点表示为 NULLlinkdataheadlinkdatalinkdat
8、aNULL链表是由节点构成的,因此,关键就是定义节点。链表的节点定义打破了先定义再使用的限制,即,可以用自己定义自己(回想递归函数的定义也违反了先定义再使用的限制)。例子#define NULL 0struct studentlong numfloat score;struct student*link;用 struct student 本身说明成员*link链表的特点:动态性节点可以根据需要增加或减少(插入/删除)节点的位置可以调整linkData-1headlinkData-2linkData-3NULL原来的链(不含数据节点t)linkData-1headlinkData-2linkDa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构体与链表 结构 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内