发布网友 发布时间:2022-04-21 15:43
共2个回答
热心网友 时间:2023-04-27 12:21
// PTREE 可以理解为是 struct TreeNode * 的别名,
// PTREE 类型的变量,即是指向 struct TreeNode 结构体变量的指针,
// 那么,PTREE * 类型的变量,就是指向 struct TreeNode 结构体变量指针的指针,
// 要理解为什么参数中传递的是指向 PTREE 类型的指针,首先要了解 C 语言参数传递的机制
// C 语言中,形参只是实参值的一份拷贝,它们仅仅是值相等,除此外再无其他关联,
// 重要的是,它们的地址不同,也就是说,改变了形参,实参并不受其影响。
// 而为了影响到实参,就需要知道实参的地址,通过其地址来修改实参。
// 通过把实参的地址传给形参,就可以修改与其相关联的实参的内容。
// C 语言的传参是基于传值的,理解了这个,由这类问题造成的困惑都会迎刃而解啦。
// 遇到指针问题,可以通过画图来帮助分析问题
// 要了解更多关于 C 语言传参机制的更多内容,可以再百度一下。
// 希望可以帮到你
热心网友 时间:2023-04-27 12:21
typedef struct TreeNode {
ElementType element;
Node left, right;
} PTREE; // pointer of three type
void CreateTree(PTREE *Root);
int main(int argc, char *argv[])
{
PTREE callBack;
CreateTree(&callBack);// 创建
callBack->element;// 访问
callBack->left;
callBack->right;
return 0;
}
// 其实最关键一点是如何CreateTree函数生成了一棵树,然后返回给调用的函数
// 其中一种方法和上面一样
PTREE callBack;
CreateTree(&callBack);
// 传递 callBack 指针,是为了CreateTree函数可以修改原调用函数中
// callBack 变量的值
// 当然也可以采用
PTREE CreateTree(void);
int main(void)
{
PTREE callBack = CreateTree();
}
// 这样直接利用函数返回值的办法