c++ 单链表创建指针的问题

void creatLinkList(int n )
{

LinkList r ,p, *L;
*L = new LinkList ;    //这一句显示出问题 无法把二级指针转化成一级
(*L)->data = 0;
r = *L ;
for(int i = 0;i< n ; i++)
{
    p = new LinkList ;
    p->data = i;
    r->next = p ;
    r = p ;
}
r->next = NULL;

}
最后我的操作*L ,不是已经把指针解地址操作了,为什么这里提示有问题呢?

1个回答

你这个*L合起来不是指针而是指针里的内容,记住 (LinkList*)这才是一个类型,也就是L的类型是它 比如 int*p=&a(5) p才是指针指向a *p是int型的5;

xingjianfengaa
xingjianfengaa 回复qq_34269988: LinkList r ,p, *L; 首先r p 类型是LinkList,而 new LinkList是LinkList*表面上的类型就不一样了,里面更不用说,你的r p与L正好弄反了,r p是Node*类型,L算是Node型了,所以1.你可以把定义改为LinkList *r,*p,L 2,或者你把New LinkList 改为new Node这样类型算是对上了
接近 2 年之前 回复
qq_34269988
假老练啊哦 typedef struct Node { int data; struct Node *next ; }Node ; typedef Node* LinkList ;
接近 2 年之前 回复
qq_34269988
假老练啊哦 不好意思 我这个定义没打出来
接近 2 年之前 回复
xingjianfengaa
xingjianfengaa 额 专业术语 *是取值运算符 &是取地址运算符 所以你应该是L=new LinkList() *L你可以当成一个LinkList的实体对象
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问