好吧,这是一个非常简单的问题:为什么第一个代码块可以编译,而第二个代码块不能?它们看起来应该是等价的,因为我改变的只是变量声明/引用。
第一的:
int memberStudents(struct studentType x, Snodeptr students, Snodeptr *s) {
Snodeptr p = *s;
while (p->next != NULL) {
if (strcmp(x.sid, p->student.sid) == 0)
return 1;
p = p->next;
}
return 0;
}
第二:
int memberStudents(struct studentType x, Snodeptr students, Snodeptr *s) {
while (s->next != NULL) {
if (strcmp(x.sid, s->student.sid) == 0)
return 1;
s = s->next;
}
return 0;
}
我想更改 Snodeptr 以使其指向正确的位置,但是当我尝试第二个代码块时,我收到一条错误消息,指出在不是结构或联合的东西中请求成员“下一个”。