按值传递指针,其中应该通过引用传递指针
Pass pointer by value where it is supposed to be passed by reference
我正在学习C++
我有一个功能:
void remove_node(node *&rem);
据我了解,rem
是一个node*
,它是通过引用传递的。我确实需要通过引用传递它,因为我更改了指针。
但有时我需要通过值(递归调用)传递它。我是这样做的:
node *noref = rem->left;
remove_node(noref);
而不是
remove_node(rem->left);
有没有更好的方法?
谢谢。
你想用你的节点做什么?该类的属性和方法是什么?
通常,在使用节点时,您只需更改节点之间的链接,而不是节点本身(例如:双链表)。
struct node {
node* right;
node* left;
};
typedef struct node node;
void remove_node(node* n) {
l_node = n->left;
r_node = n->right;
l_node->right = r_node;
r_node->left = l_node;
free(n);
}
这将是 C 代码,将其传递给C++只使用访问器和析构函数:)
相关文章:
- 如何使用基类指针引用派生类成员
- 将常量指针引用绑定到非常量指针
- 如果非动态变量被指针引用,何时超出范围?
- 转换指针引用的字符串
- 指针引用的生存期(以 C++为单位)
- 从 unique_ptr::get 发送指针作为指针引用进入函数
- 指针/引用的 CLion 格式
- 使用模板专用化来比较指针引用
- 如何保存指向抽象基类的指针/引用,但在 c++ 中仍然可以复制
- C++初始化指针/引用/复制细微差别
- 用数组或指针引用函数?
- 指针范围问题和返回类中封装的指针向量内的指针引用
- 强制转换为指针引用是否会导致未定义的行为
- 访问由 void 指针引用的结构的成员
- C 为什么当先前的步骤引发异常时,std :: shared_ptr的指针引用会被破坏
- 动态指针引用数组由三元运算符返回值,但有异常
- 悬空指向 int 和 char* 常量的指针/引用
- C++ 二维数组和指针引用
- 通过使用指针/引用,在C++中使用向量加快计算速度
- C++非类型模板模板到函数指针/引用