永发信息网

结构体中在大括号外的变量和指针分别代表什么?同时那个指针这么用是什么意思?

答案:2  悬赏:0  手机版
解决时间 2021-11-16 08:51
  • 提问者网友:我的未来我做主
  • 2021-11-15 12:07
结构体中在大括号外的变量和指针分别代表什么?同时那个指针这么用是什么意思?
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-11-15 12:47
typedef struct _BiTNode//是否忘记打typedef?要不你底下的BiTree T是不能通过编译的!因为按你的写法BiTree是一个变量而不是一个变量类型,另外请去掉两个圆括号,还有为防止冲突,前边加下划线
{
TelemType date;
struct _BiTNode *l,*r;//老大,记得加分号!
}BiTNode,*BiTree;
意思是定义一个结构体类型(用作链表的一个节点),BiTNode就是该结构体,而BiTree是一个BiTNode类型的指针。
BiTree T是说参数T是一个指针,该指针是BiTree类型的,根int * ,float* 一样,就是一个指针而已。追问额,3q,,我只问问结构体大括号外定义的指针和变量是啥意思、、、、这程序是我从二叉树上截的一部分,本来就跑不了。。。
谢谢,大括号外的指针和变量名都懂了,,
另再问一下,typedef必须加吗?为啥呢?追答如果不加typedef,你就是定义了两个变量,这两个变量可以直接用,编译器是要为他们分配内存的;如果加上,就是定义了两种变量类型,这两种变量类型如果int,float一样,作用类似于define,编译器并不为他们分配内存。所以加不加都能通过编译,但意义是不一样的。这样说你明白了吗?
全部回答
  • 1楼网友:狂恋
  • 2021-11-15 13:41
如果单单这样写
struct BiTNode()
{
TelemType date;
struct BiTNode *l,*r
};
是声明一个结构体变量;

struct BiTNode()
{
TelemType date;
struct BiTNode *l,*r
}BiTNode,*BiTree;
//这样写的话相当于 声明变量的同时 定义一个就够变量,和定义一个结构体指针,也相当于
struct BiTNode()
{
TelemType date;
struct BiTNode *l,*r
};
struct BiTNode BiTNode;
struct BiTNode * BiTree;

T是指向结构体的指针追问额,我只问问结构体大括号外定义的指针和变量是啥意思、、、、这程序是我从二叉树上截的一部分,本来就跑不了。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯