#include<iostream>
using namespace std;
typedef struct A
{
int data;
int height;
struct A* left;
struct A* right;
}*DD;
void hanshu(DD& T)//既然root是指针那这里用&取地址符
{
int n;
int x;
cin >> n;
for (int i = 0; i < n; n++)
{
cin >> x;
insert(T, x);//那这里的T为什么不写成*T呢? 要不然形参这里 insert(DD& T, int x)为什么用&取地址符呢?
}
return;
}
DD insert(DD& T, int x)
{
if (T == NULL)
{
T = new A;
}
return T;
}
int main(void)
{
DD root = NULL;//结构体别名这里的root是否就相当于*root=&DD 了? 这里的别名结构体root就是=*root了?
hanshu(root);//为什么这里不是*root呢? 别名typedef还可以让root省略*号吗?
return 0;
}
c++中结构体别名的指针形参和实参的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qzjhjxj 2022-10-20 23:49关注
typedef struct A { int data; int height; struct A* left; struct A* right; }*DD; 上面的结构体定义,简化为:typedef struct A * DD; 也就是 struct A* 用 DD 别名来代替。 DD root = NULL; 等价于:struct A * root = NULL; & 是引用,void hanshu(DD& T) 形参 DD& T ,相当于 struct A * & T , .引用是直接访问指针变量 root 。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥170 如图所示配置eNSP
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥15 键盘指令混乱情况下的启动盘系统重装