这是我的代码:
typedef struct node {
int data;
struct node *next;
} Node;
void add(Node *head, Node *node) {
Node *ptr;
ptr = head;
if(head==NULL) {
head=node;
}
else {
while(ptr->next != NULL) {
ptr = ptr->next;
}
ptr->next = node;
}
}
Node* create(int a) {
Node *node;
node = (Node*)malloc(sizeof(Node));
node->data = a;
node->next = NULL;
return node;
}
int main() {
Node *head;
head = NULL;
int i;
for(i=0; i<10; i++) {
Node *node;
node = create(i);
add(head, node);
}
}
问题是:head 在函数 add 中被重新定义,每次 add 被调用。为什么 ?