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++ 添加了引用参数(由 & 表示)。 按值传递仅传递数据的副本,而不会传递实际数据本身。这就是函数调用中使用的变量未在函数中更新的原因。
关于c - 在以下使用 C 的情况下,pNext 指针将是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/193440/