数据结构C语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 05:16:55
插入元素
int ListInsert(lnode *L, int i, ElemType x)
{ intj=1;
lnode *p=L, *s;
.....
我想请教下L不是代表地址? 怎么能赋给指针P所指的元素?
上面的就是数据结构线性表的其中一个例题
完整的就是
int ListInsert (lnode * L, int i, ElemType x)
{
int j=1;
lnode *p=L; *s;
s=(lnode *)malloc(sizeof(lnode));
s->data=x;
s->next=NULL;
if(i<1||i>Length(L)+1)
return 0;
while(j<1)
{ p=p->next ;
j++ ;
}
s->next=p->next ;
p->next=s ;
return 1;
}

这里的“lnode *p=L;”中“p”
应该指的是一个指向Inode类型的指针,并不是p所指的元素。
如果是p所指的元素应该写成“*p”,没有“Inode”。
这样p和L是同类型的指针,当然可以赋值了。
这里的“lnode *p=L;”是在定义变量的同时对变量进行初始化。
相当于“Inode *p;
p=L;”
这两行命令。

L是代表地址,
你可以用P=L或者*P=*L.

同类型指针之间可以赋值
相当于L和p指向同一地址
实际上指向哪个地址的变量内容并没有多拷贝一份

就相当于你拿着一所房子的钥匙,然后你把钥匙配了一把给了另一个人。