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表示)。
传递值只传递数据的副本,而不传递实际数据本身。这就是为什么函数调用中使用的变量没有在函数中更新的原因。