引用在链表中的应用
来源:互联网 发布:申万宏源软件中心 编辑:程序博客网 时间:2024/05/22 11:45
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<malloc.h>struct book{int name; //问题:链表引用问题 struct book *next;};typedef book *b; //定义结构体createhead(b &head)//这里必须加引用{head=(b)malloc(sizeof(book));if(!head) // 存储分配失败 {exit(0);}head->next=NULL;}addbody(b head,int a)//这里可不加引用{ b l,pnew,ptail;l=head;while(l->next){l=l->next;} pnew=(b)malloc(sizeof(book));pnew->name=a;pnew->next=NULL;l->next=pnew;}void main(){int a,n;b head,i;createhead(head);scanf("%d",&n);while(n){scanf("%d",&a); addbody(head,a);n--;}i=head->next;while(i){ printf("%d ",i->name);i=i->next;}}将一个结构体变量中的数据传递给另一个函数,有下列3种方法:
1.用结构体变量名作参数。一般较少用这种方法。
2.用指向结构体变量的指针作实参,将结构体变量的地址传给形参。
3.用结构体变量的引用变量作函数参数
typedef LNode *LinkList;这样定义后linklist就为一个结构体指针,
开辟空间时(linklist)malloc。。。那个linklist后面就不用加星号了
也可以typedef struct LNode{
...
}*LinkList
效果是一样的
总结:
第一个传参:
结构体指针做调用函数的参数时,为了能在主函数中保持改变,形参必须是指针的指针或者引用。
和非指针变量作参数一样,要想在主函数中通过调用函数来改变某值,必须传过来指针。而指针做参数时,必须传过来指针的指针。
第二个传参:
因为头节点没必要改变,所以直接传指针,不用引用。
0 0
- 引用在链表中的应用
- 指针的引用在函数中的应用
- Java 软引用及在Android中的应用
- 指针的引用——在函数中的巧妙应用
- WeakReference 在android中的应用 弱引用防止内存泄漏
- 引用 PhotoShop在网页版式设计中的应用
- 链表在c中的应用
- 快慢指针在链表中的应用
- 指针与引用在主调函数和被调函数中的应用
- 引用、指针和指向指针的指针在函数形参中的应用
- javabean在jsp中的引用
- JavaBean 在Jsp中的引用
- 【数据结构】typedef struct 和 struct在链表中的应用
- 双向链表在java中的应用举例-LinkedList
- 职责链模式在项目中的应用
- 责任链模式在Android中的应用
- 责任链模式在Android中的应用
- Merkle tree在区块链中的应用
- 视频会议的发展趋势---移动视频会议
- Unity3d中插入音频
- POJ3436 ACM Computer Factory 【最大流】
- Qt在Windows下的三种编程环境搭建
- SQL Server2005完全卸载
- 引用在链表中的应用
- IEEEVisWeek
- linux panic 问题定位
- HDU 3625 Examining the Rooms 第一类斯特林数
- TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
- .Net library
- 虚拟运营商不要重蹈基础运营商覆辙
- 无证书调试,xcode破解详细教程
- android java.lang.IllegalStateException: System services not available to Activities before onCreat