打印输出,尽管头>下一个为空


void create(node *head)//function to create a linked list
{
int n;
printf("enter number");
printf("if end enter -999");
scanf("%d",&n);
if(n == -999)
{
    head=NULL;
}
else
{
    head->data=n;       
    head->next=(node *)malloc(sizeof(node));        
    create(head->next);
}
return;
}
void print(node *head)//function to print linked list
{
if(head->next != NULL)
{
    printf("%d n",head->data);
    print(head->next);
}
return;
}

在这里,当第一个数字输入为3,下一个数字输入为-999,头->数据应该变成3,head->next应该是NULL,当打印函数被调用时,它不应该进入if块,因为head->nextNULL,但3正在被打印。

为什么打印3 ?

首先,这取决于你在打印函数中传递的内容(打印函数中的head是什么)。

我想你是这样写的,比如在main函数中:-

head = (node *)malloc(sizeof(node));

/////更多代码

现在你在打印函数中传递了这个头,它的值为3,而head->next是NULL而不是头。我只是假设这是你必须写你的主函数的方式,如果是这样,那么我已经回答了你的查询。

谢谢

相关内容

  • 没有找到相关文章

最新更新