通过 const 引用传递指针

Pass a pointer by const reference

通过 const 引用传递指针不是为了优化吗?

例如

bool testHelper(const TreeNode*& p, const TreeNode*& q) {
    return false;
}

TreeNode* test(TreeNode* root, TreeNode* p, TreeNode* q) {
    recursiveHelper(p, q);
}

错误:

Line 17: Char 28: error: binding reference of type 'const TreeNode *' to value of type 'TreeNode *' not permitted due to incompatible qualifiers
                testHelper(p, q);
                           ^
Line 12: Char 42: note: passing argument to parameter 'p' here
        bool testHelper(const TreeNode*& p, const TreeNode*& q) {
                                         ^

Is passing a pointer by const reference not done for optimization?

不,不是,因为它并没有更快。添加的间接寻址可能会更慢。

bool testHelper(const TreeNode*& p, const TreeNode*& q) 

这些不是对 const 的引用。这些是指向 const 的非常量指针的引用。


其他错误:

  • test 被声明为 return 非空但缺少 return 语句
  • 您还没有声明您调用的函数 recursiveHelper