我正在尝试在C语言中创建单链接列表的功能,但是在访问Head节点的下一个节点时遇到问题。
typedef struct node {
struct node *next;
} Node;
int foo(Node **head){
*head = *head->next;
}
运行此代码时,我希望它会将我的头节点指针的地址更改为下一个节点,但是相反,我收到以下错误:
‘*head’ is a pointer; did you mean to use ‘->’?
*head = *head->next;
答案 0 :(得分:2)
foo中的行应该是
*head = (*head)->next
因为'->'的优先级高于*
您可以在此处(https://en.cppreference.com/w/cpp/language/operator_precedence)了解更多有关运算符优先级的信息