我需要在链表中加一个变量。我有以下功能,但我在注意到的线路上遇到错误。我还认为我可能没有正确完成if语句以将求和的值返回给函数。
int print_nodeprice1 (node *headptr, int num) {
int sum = 0;
node *first;
first = *headptr; // getting errors that I can't assign this
while (first != NULL) {
first = first -> next_ptr;
if (num == first -> price1)
return sum;
else {
printf("\n");
}
}
}
答案 0 :(得分:1)
first = headptr;
这将起作用..因为它们都是类型(节点*)
答案 1 :(得分:1)
你有几个问题:
答案 2 :(得分:0)
first = *headptr; // getting errors that I can't assign this
正确 - 您正在尝试将值(取消引用)分配给指针。
first = headptr;
除此之外......目前还不清楚你的意思是“在我的链表中加一个变量”。当代码发现0
等于您传入的price1
时,代码会返回num
。
答案 3 :(得分:0)
int print_nodeprice1 (node *headptr, int num) {
node *first;
first = *headptr; // getting errors that I can't assign this
first
是指向node
的指针,headptr
也是指向node
的指针。现在,您尝试将first
的结果分配给引用headptr
。
答案 4 :(得分:0)
您不需要*
。它应该只是:
first = headptr;
first
和headptr
属于node*
类型。 *
运算符取消引用它们,因此*headptr
的类型为node
,而不是node*
。
答案 5 :(得分:0)
first
是指向node
的指针。 headptr
是指向node
的指针。 *headptr
是一个节点。您无法将node
指定给指向node
的指针。