永发信息网

在定义结点时写*LinkList,在创建链表时只用写LinkList,这是为什么?

答案:3  悬赏:30  手机版
解决时间 2021-01-24 17:12
定义节点如下:
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList; //线性链表类型
创建链表时用以下函数,内容省略。
Status CreateList_L(LinkList *L,int n);
mian函数内容:
LNode *L1;
CreateList_L(&L1,5);

我的问题就是在使用CreateList_L函数创建链表时,它的参数是LInkList *类型的,
为什么不是*LinkList *类型的。
我认为typedef的时候是将整个结点结构体重命名为*LinkList
在使用这种结构体类型的时候却不用在LinkList前加*号,这是怎么回事?
最佳答案
楼上那位兄弟完全误解了LinList *L的意思啦
Status CreateList_L(LinkList *L,int n);
因为LinkList <=> LNode *,转换一下就明白了,LNode **L,这说明L是一个指向指针的指针。例如:int *p=4;**q; q=&p;其中指针p指向存储4的地址,由于指针也是变量,在内存中也是有存储地址的,指针q则指向指针变量p的存储地址。而是用结构体时是直接是用头指针,所以不需要加*号,这样你应该能明白了吧。
全部回答
这个定义你这么看 typedef (struct LNode *) LinkList; 意思就是 LinkList 本身就是一个指向struct LNode 指针 比方说你定义了一个char * p;它是(char *) p,p是指向char 的指针,你之后用P的时候不会再在它的前面加一个* 吧?
struct 是值类型,class是引用类型。这个地方用得不对 “ public clslink next;”你写的这这句话是引用类型,值类型中不能用到引用类型,而引用类型中可以用到值类型。 c#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。 c#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样才能在PS里把图片截成多边行
随意春芳歇,王孙自可留表达作者什么志向
请大侠写个通达信公式 关于KD 乖离
【关于马的成语故事】关于马的成语故事30字
小猫的头部被门夹了,流了好多血,过了一晚上还
邮政宾馆地址在什么地方,想过去办事
东方沸点(福州仓山区)地址有知道的么?有点事
【忑忐】忐和忑怎么组词?
将下列地形区与它们所在的阶梯用直线连接起来
阀门水暖地址有知道的么?有点事想过去
擦擦,擦擦,的法拉利是什么歌,慢摇那一类的
夫妻之间的猜疑应该如何正面应对?
【关于边塞的古诗】边塞阅历最丰富、对边地风
吉之美开水器清洗水垢方便吗
我的显卡是不是坏了?刚刚电脑好正常的运行中
推荐资讯
在电脑上怎么把东西下载到内存卡里
宾馆里面卖保健品是什么
【少爷被打屁眼的作文】活该被打作文
请问红米手机有收音机功能吗
请问,为什么我一玩华夏,10多分钟就自动重启啊
天意婚纱摄影儿童摄影地址好找么,我有些事要
兴宁区南宁三棵树怎么去啊,谁知道地址啊
心室夺获
手机自动点击屏幕啊,求帮助
屋沿坑村怎么去啊,我要去那办事
下列关于通货膨胀对证券市场影响的看法中,错
以下关于绿化控制的说法哪个正确?()A.绿化面
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?