永发信息网

新手求助关于c程序中链表初始化的问题

答案:2  悬赏:70  手机版
解决时间 2021-12-23 20:54
  • 提问者网友:不要迷恋哥
  • 2021-12-22 22:51
程序如下:

typedef struct node{
int data;
node *next;
}node;

node* init(int a[], int n){
node *head=NULL, *p; 这一行完全不理解,head应该是指向node结构体的一个指针吧,怎么赋值NULL之后同时赋值成P的值
for(int i=0; i node *nd = new node(); 如果是new的话,这个结构体会出现在stack上还是直接存在普通的data memory上呢?
nd->data = a[i];
if(i==0){
head = p = nd;这种赋值方法是什么意思?是先p=nd,再head=p?
continue;
}
p->next = nd;
p = nd;只要这个function调用过后,他的local变量应该都被清楚了吧,感觉p应该是被清楚,但是head还保有P的值,不知道是不是这样理解的?
}
return head;
}
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-12-23 00:20
node *head=NULL, *p; //head是整个链表的头指针; P是定义一个指针
for(int i=0; i node *nd = new node(); //这个结构体会出现在heap上
nd->data = a[i];
if(i==0){
head = p = nd; //先p=nd,再head=p
continue;
}
p->next = nd;
p = nd; //p指向当前的记录。 你按i=0,1,2走一遍,并画图就会明白
全部回答
  • 1楼网友:我住北渡口
  • 2021-12-23 01:51
没看懂什么意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯