帮忙解释这一条C语言程序语句的含义

typedef struct{
KeyType key;
}SElemType;
typedef struct BitNode{
SElemType data;
struct BitNode *lchild,*rchild;
}BitNode,* BiTree;

/*二叉排序树的插入*/
Status InsertBST(BiTree &T,KeyType key){
BiTree s;
if(!T)
{
s=(BiTree)malloc(sizeof(BitNode));
s->data.key=key;
s->lchild=s->rchild=NULL;
T=s;
}
else if LT(key,T->data.key)
InsertBST(T->lchild,key);
else InsertBST(T->rchild,key);
return TRUE;
}
在二叉排序树的插入中这条语句Status InsertBST(BiTree &T,KeyType key)中的bitree&t怎么解释,这里的&是什么用法?

第1个回答  2014-06-22
Bitree T -> 定义Bitree一个实例对象:T;

Bitree &T -> 定义Bitree的实例对象的引用,就是一个已经定义的对象的别名,需要初始化;
/*
摘自<<高质量C++/C编程指南>>
引用是C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n是m的一个引用(reference),m是被引用物(referent)。

int m;

int &n = m;

n相当于m的别名(绰号),对n的任何操作就是对m的操作。例如有人名叫王小毛,他的绰号是“三毛”。说“三毛”怎么怎么的,其实就是对王小毛说三道四。所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。

*/
Bitree *T -> 定义Bitree的实例对象指针,指向一个实例对象;

代码参考:

Bitree T;

Bitree &T = T;

Bitree *T = &T; //&是取地址.本回答被提问者采纳

C语言帮忙分析这段代码怎么理解,拜谢!!!
1、a[100]数组的第一个元素a[0]设为0 ,这个地方a[1]~a[99]这99个元素其实都没初始化。2、循环从控制台获取n值,对数组元素a[n]进行自加1操作,直到n值非法或者为负值的时候结束循环。这个地方有缓冲区溢出隐患,n值>99的时候其实是越界操作。3、循环找到a[0]~a[99]里面的最大值存在m...

c语言程序理解题,帮忙解释部分语句的含义。题中\\t,%c什么含义
\\t是换到下一个制表位就是和空几格对其差不多,%c表示输出的是字符,%s就是字符串了

解释下述C语言代码 一句一句 帮忙!!!
回答:这个是C语言的链表操作,涉及到了遍历打印和插入链表。你可以先学习下链表。。

C语言的一个语句`麻烦帮忙翻译一下
s*=s; (这是一个积赋试) 这一句的意思写明白就是S=S*S 这里的S的值 就是上面A或者B的值

这一条c语言是什么意思啊
这段程序是根据输入的a 、b 、c 三个变量,求三者之中最大数和最小数。max函数是求最大数,min求最小数。这两个函数的实现方法应该是在stdio.h或declare.h中定义的。通俗讲,#include 头两句,是包含stdio.h 和declare.h两个库文件 void main() c语言中规定,只有一个main()函数,即程序入口...

C语言编程,有一个语句,我不知道什么意思,有哪位大侠愿意帮忙
这个i就是用来控制{}里面的语句执行次数的,{}里面的语句不使用i,但是i用来控制里面语句执行的次数,n-2+1次。也就是i=2执行一次、i=3再执行一次、……最后i=n执行一次,没有i的话程序就没办法控制执行次数。

跪求C语言高手帮忙解释一下下面这段代码中“%*d”的含义
d是抑制赋值的意思,即让scanf匹配一个%d,但不将这个%d赋值给变量。这里的话,i=第一个数,j=第三个数,k并没有被赋值。

C语言中的一道例题,谁能帮忙详细解释一下每一步的含义?
回答:输出为: bcdefgha 解释: char *ss( char *s) 函数ss 返回一个指向字符串的指针;函数参数 s 是一个指向字符串的指针 这样,在main 中调用 ss(str)后,s指向了str的首元素,也就是“abcdefgh"中的 ‘a' char *p, t \/\/定义一个char 指针 p 和一个char 变量 t p = s+1 p...

C语言程序功能解释,帮我解释下这个代码
本质意义很简单,就是录入图书的基本信息。在录入编号的时候检查一下是否已经有录入相同的,如果有则提示,否则就继续。

C语言,帮忙解释一下这个程序:28题,谢谢
表示指针p指向数组的首元素a[0];输出的第一个 ++p --> x ;p-->x 的值先自加后输出、开始时p指向a[0];a[0].x的值即 p-->x 的值为0然后++输出,应该是1;第二个输出的值。因为p是指针,++p是指p指向数组的第二个元素a[1];a[1].x = 1,所以输出的也是1 第三个我也不...

相似回答