求助:结构体整体赋值问题
假如前面定义了二叉查找树,这样的操作会不会改变根节点?
已经定义了
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;会不会改变根节点,为什么?
结构体可以整体赋值吗? 结构体 赋值
[解决办法]
不会
指针作为函数的参数, 函数只能修改指针指向的内容, 不能修改指针的指向. 要修改指针本身的值, 也就是它的指向, 用指针的指针或指针的引用.
[解决办法]
请深刻理解“值传递”的含义!
[解决办法]
函数参数传递,传递的是实参的一个副本,这就是所谓的“值传递”。传递指针,只能修改指针指向的内容,在调用函数里的值没有发生任何改变,但指向的内容会发生变化。