求助:结构体整体赋值问题

eeeeelin 2013-07-23 04:43:27
假如前面定义了二叉查找树,这样的操作会不会改变根节点?
已经定义了
typedef struct BSTNode
{
ElementType data; //
struct BSTNode *left; //左子树
struct BSTNode *right; //右子树
}*BSTNode, *BSTree;

BSNode FindMax(BSTree T)
{
if(T != NULL)
{
while(T->right != NULL)
T = T->right;
}

return T;
}
那里T = T->right;会不会改变根节点,为什么?
结构体可以整体赋值吗?
...全文
329 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
大漠孤鸿 2013-07-23
  • 打赏
  • 举报
回复
函数参数传递,传递的是实参的一个副本,这就是所谓的“值传递”。传递指针,只能修改指针指向的内容,在调用函数里的值没有发生任何改变,但指向的内容会发生变化。
kosora曹 2013-07-23
  • 打赏
  • 举报
回复
请深刻理解“值传递”的含义!
水平不流 2013-07-23
  • 打赏
  • 举报
回复
如果你返回T保存了的话,根节点自然也就改变了. 要不然就是楼上所说的. 结构体的话,可以整体赋值.
www_adintr_com 2013-07-23
  • 打赏
  • 举报
回复
不会 指针作为函数的参数, 函数只能修改指针指向的内容, 不能修改指针的指向. 要修改指针本身的值, 也就是它的指向, 用指针的指针或指针的引用.

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧