#include <stdio.h>
struct node
{ int data;
struct node *next;
};
typedef struct node NODETYPE;
main()
{ NODETYPE a, b, c, * h, * p;
a.data =10; b.data =20; c.data =30; /*给变量中的data域赋值*/
h =&a; /*将结点相连*/
a.next =&b; b.next =&c; c.next = ‘\0’ ;
p =h;
while( p ) /*移动p,使之依次指向a、b、c,输出它们data域中的值*/
{ printf("% d ", p ->data );
p=p->next; /* p顺序后移*/
}
printf("\n");
}
代码中出现的c.next = ‘\0’ ,我猜测这是设置为空,这种写法不对吧应该写成null。
其实 NULL nullptr FALSE '\0' 0 都是一样的,当然,从逻辑上,用 NULL 或者 nullptr 更好。
【以下回答由 GPT 生成】
您的猜测是正确的。C语言中使用NULL
来表示空指针,而不是使用'\0'
。NULL
是一个预定义的宏,表示一个空指针常量。在大部分C语言编译器中,NULL
的定义为((void *)0)
,代表一个指向void类型的空指针。
所以在您的代码中,将c.next
赋值为NULL
是正确的写法,这样可以明确表示该指针为空。修改代码如下:
c.next = NULL;
请确保您在编写C代码时,按照约定使用NULL
来表示空指针,以确保代码的可读性和可移植性。