数据结构体定义的问题1 typedef struct CSNode{TElemType data;CSNode *fir

学习 时间:2026-04-07 20:24:49 阅读:7965
数据结构体定义的问题1 typedef struct CSNode{TElemType data;CSNode *firstchild,*nextsibling;}CSNode,*CSTree;最后的CSNode,*CSTree;分别是什么意思?2void insert(LinkList p;int x)void insert(LinkList &p;int x)void insert(LinkList *p;int x)这三种定义有什么区别?3LinkList s;LinkList *s;这两种定义什么区别?4s=(LinkList)malloc(sizeof(Node));s=(LinkList *)malloc(sizeof(Node));这个又有什么区别呢?thanks

最佳回答

包容的白开水

多情的小鸽子

2026-04-07 20:24:49

1。CSNode是结构体类型,CSTree是结构体指针类型。CSNode x;则x是一个结构体变量;CSTree x;则x是指向结构体变量的指针2。void insert(LinkList p;int x) 形参p是变量,使用这个不能带回修改后的结果void insert(LinkList &p;int x) 形参p是变量的引用,使用这个可以带回修改后的结果,只能用在C++中void insert(LinkList *p;int x) 形参p是变量的指针,使用这个可以带回修改后的结果,效果和第二个一样,但不如第二个方便3。LinkList s; s是链表类型的一个变量LinkList *s;s是指向链表头结点的指针变量 (我这样说的前提是LinkList是结构体类型,而不是指针类型)如果LinkList是指针类型,那么第一种s就是指针,第二种s就是指针的指针4。假设LinkList是结构体类型,那么第一种开辟空间的写法是错误的,第二种是对的,用malloc开辟空间,返回的是指针。假设LinkList是结构体指针类型,那么第一种是是开辟了一个节点的空间,并返回了其起始地址;第二种应该不对吧。

最新回答共有2条回答

  • 想人陪的学姐
    回复
    2026-04-07 20:24:49

    1。CSNode是结构体类型,CSTree是结构体指针类型。CSNode x;则x是一个结构体变量;CSTree x;则x是指向结构体变量的指针2。void insert(LinkList p;int x) 形参p是变量,使用这个不能带回修改后的结果void insert(LinkList &p;int x) 形参p是变量的引用,使用这个可以带回修改后的结果,只能用在C++中void insert(LinkList *p;int x) 形参p是变量的指针,使用这个可以带回修改后的结果,效果和第二个一样,但不如第二个方便3。LinkList s; s是链表类型的一个变量LinkList *s;s是指向链表头结点的指针变量 (我这样说的前提是LinkList是结构体类型,而不是指针类型)如果LinkList是指针类型,那么第一种s就是指针,第二种s就是指针的指针4。假设LinkList是结构体类型,那么第一种开辟空间的写法是错误的,第二种是对的,用malloc开辟空间,返回的是指针。假设LinkList是结构体指针类型,那么第一种是是开辟了一个节点的空间,并返回了其起始地址;第二种应该不对吧。

上一篇 e e p o r r r t这些字母可以组成什么英语单词

下一篇 浪淘沙的写作背景,浪淘沙的写作背景,是那首九曲黄河万里沙的那首,用1、2句话说 要准确的说的是刘禹锡的那首浪淘沙:九曲黄