admin 管理员组

文章数量: 887639


2024年2月20日发(作者:wxpython怎么让文本实时显示)

#define NULL 0什么意思

2010-04-15 08:37提问者: wyy孳孳linda |浏览次数:1372次

#include

#include

#define NULL 0

typedefstruct node

{

int data;

struct node *next;

}linklist;

void input(linklist *L) /*输入函数*/

{

linklist *r,*p;

p=(linklist *)malloc(sizeof(node));

r=L;

printf("input nums(-1 to quit): ");

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;

}

void mergelist(linklist *A,linklist *B,linklist *C)

{

linklist *p,*q,*r;

p=A->next; /*A的第一个节点*/

q=B->next;

r=A;

while(p && q)

{

if(p->datadata)

{

r->next=p;

r=p;

p=p->next;

}

else if(p->data==q->data)

{

r->next=p;

r=p;

/*两单链表合并函数*/

p=p->next;

q=q->next;

}

else

{

r->next=q;

r=q;

q=q->next;

}

}

if(p)

r->next=p;

if(q)

r->next=q;

}

void output(linklist *L) /*输出函数*/

{

linklist *p;

p=L->next;

while(p)

{

printf("%2d",p->data);

p=p->next;

}

printf("n");

}

void main()

{

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-15 10:30

#define 是宏定义语句,后面加NULL 0 表示把NULL定义成0,

实际上,在编译器工作时候,第一步就是对原文件进行预处理,

首先把#include的文件展开,然后把文件中所有用#define定义的宏用其值替换,对于你这个来说,就是在预处理的时候,把所有的NULL用0进行了替换


本文标签: 进行 函数 定义