c - 在以下使用 C 的情况下,pNext 指针将是什么?

标签 c pointers

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/

相关文章:

更改 C 函数参数中错误检查的类型?

c - 十进制到 BASE-26 表示法

c - 如何不使用方括号而是使用指针在数组中存储一组值

C++ 访问 void* 中的特定地址

c - 大端系统上的地址运算符

c - C 标准是否指定了从 stdout 读取输入的行为?

C - 指向数组的指针段错误

c - 二维数组 : Alphabetical Sorting in C

c - 使用指针对函数(下图)进行单元测试

c - C如何保护指针内存?