func()
{
    Object* pNext;
    func1(pNext);
}

func1(Object* pNext)
{
    pNext = Segement->GetFirstPara(0);
}

我原以为它是指向从func1()返回的firstpara的指针,但我看到了null,可以解释一下,如何修复它以实际返回firstpara()指针?

最佳答案

对于C++,您可以将参数作为引用。

func()
{
    Object* pNext;
    func1(pNext);
}

func1(Object*& pNext)
{
    pNext = Segement->GetFirstPara(0);
}

这里发生的是按值传递参数和按引用传递参数之间的区别。c总是按值传递。为了得到一个值,该值需要是一个引用值(例如object**将object*作为指针引用)。C++添加了参考参数(由AND表示)。
传递值只传递数据的副本,而不传递实际数据本身。这就是为什么函数调用中使用的变量没有在函数中更新的原因。

10-04 21:57