首页 新闻 会员 周边 捐助

C语言 声明结构体类型与typedef的用法问题

0
悬赏园豆:10 [已解决问题] 解决于 2017-07-23 09:12

  typedef struct node{}*tree;

  typedef struct node{}tree;

  声明后,用这两种定义Tree t有何不同?

  当使用typedef struct node{}*tree;时,若需要声明一个void Create_pro()函数,作用是创建一棵树,主函数中采用Create_pro(&t)来调用,那声明时是用Create_pro(Tree t),还是Create_pro(Tree *t)呢?

  其他网站给的函数声明是Create_pro(Tree *t),为什么呢?

bw98的主页 bw98 | 初学一级 | 园豆:177
提问于:2017-07-18 20:25
< >
分享
最佳答案
0

C语言里,若你想通过某函数改变某变量,那么你应该传入该变量的指针,而不要管你要改变的这个变量到底是个指针还是个其他什么玩意。

你的定义,tree是node指针类型

tree top = NULL;

但你希望通过Create_pro函数修改这个top变量,让top指向一棵树的树根,那么当然应该传入top的地址。

收获园豆:10
窗户 | 小虾三级 |园豆:886 | 2017-07-22 23:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册