abe*_*eer 0 c pointers linked-list data-structures singly-linked-list
我最近遇到了这个问题.
创建了单链表,列表的节点看起来像
struct node
{
int data;
struct node* link;
};
Run Code Online (Sandbox Code Playgroud)
该列表是使用add at head创建的,列表看起来像
100-> 200-> 300
显示功能写成
void display(struct node* head)
{
while(head != NULL)
{
printf ("%d", *head);
head=head->next;
}
}
Run Code Online (Sandbox Code Playgroud)
这是访问列表中数据的合法方式吗?我把它绑在GCC编译器上,它发出警告但是它有效.在某些情况下是否会导致错误?
printf ("%d", *head);
Run Code Online (Sandbox Code Playgroud)
应该
printf ("%d", head->data);
Run Code Online (Sandbox Code Playgroud)
然后编译器警告应该消失.您的代码是偶然的(或者偶然地,正如@alk评论的那样),因为它data是第一个成员struct node.它可能取决于如何将struct参数传递给printf函数.无论如何,这是错误的.