#defineNULL0什么意思
2010-04-1508:37提问者:wyy孳孳linda|浏览次数:1372次
#include
#include
#defineNULL0
typedefstructnode
{
intdata;
structnode*next;
}linklist;
voidinput(linklist*L)/*输入函数*/
{
linklist*r,*p;
p=(linklist*)malloc(sizeof(node));
r=L;
printf("inputnums(-1toquit):");
scanf("%d",&p->data);
while(p->data!=-1)
{
r->next=p;
r=p;
p=(linklist*)malloc(sizeof(node));
scanf("%d",&p->data);
}
r->next=NULL;
}
voidmergelist(linklist*A,linklist*B,linklist*C)/*两单链表合并函数*/
{
linklist*p,*q,*r;
p=A->next;/*A的第一个节点*/
q=B->next;
r=A;
while(p&&q)
{
if(p->data
{
r->next=p;
r=p;
p=p->next;
}
elif(p->data==q->data)
{
r->next=p;
r=p;
p=p->next;
q=q->next;
}
el
{
r->next=q;
r=q;
q=q->next;
}
}
if(p)
r->next=p;
if(q)
r->next=q;
}
voidoutput(linklist*L)/*输出函数*/
{
linklist*p;
p=L->next;
while(p)
{
printf("%2d",p->data);
p=p->next;
}
printf("n");
}
voidmain()
{
linklist*LA,*LB,*LC;
LA=(linklist*)malloc(sizeof(linklist));
LB=(linklist*)malloc(sizeof(linklist));
printf("对链表LA进行初始化!n");;
input(LA);
output(LA);
printf("对链表LB进行初始化!n");
input(LB);
output(LB);
LC=LA;
mergelist(LA,LB,LC);
printf("链表LA和LB合并后为:");
output(LC);
}
我来帮他解答
满意回答
2010-04-1510:30
#define是宏定义语句,后面加NULL0表示把NULL定义成0,
实际上,在编译器工作时候,第一步就是对原文件进行预处理,
首先把#include的文件展开,然后把文件中所有用#define定义的宏用其值替换,对于你这个
来说,就是在预处理的时候,把所有的NULL用0进行了替换
本文发布于:2022-11-24 17:41:43,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/13289.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |