C语言 取消引用指向结构的指针



我最近遇到了这个问题。

创建了一个单向链表,列表的节点看起来像

struct node
{
    int data;
    struct node* link;
};

该列表是使用 add at head 创建的,列表看起来像

100->200->300

显示函数写为

void display(struct node* head)
{
    while(head != NULL)
    {
        printf ("%d", *head);
        head=head->next;
    }
}

这是访问列表中数据的合法方式吗?我把它绑在GCC编译器上,它抛出了一个警告,但它有效。在某些情况下会导致错误吗?

printf ("%d", *head);

应该是

printf ("%d", head->data);

然后编译器警告应该消失。您的代码是偶然的(或偶然,如@alk评论( 因为datastruct node的第一位成员。这可能取决于结构参数如何传递给 printf 函数。无论如何,这是错误的。

相关内容

  • 没有找到相关文章

最新更新