c - C函数中的参数传递

标签 c function parameter-passing

我有一个用C写的函数

FindBeginKey(KeyListTraverser, BeginPage, BeginKey, key1);

BeginKey是函数调用前的指针,我没有初始化,比如

BeginKey = NULL;

FindBeginKey()函数中,我将BeginKey赋值给另一个指针,并尝试打印出BeginKey的当前地址功能,它工作正常。 但是当代码从函数返回时,我尝试再次打印出 BeginKey 的地址,它显示 0x0

为什么会这样,如果我想保留函数中赋值的地址,怎么办?

最佳答案

要从函数中传递一个值,您必须按引用 传递,而不是像 C 函数通常那样按值。要做到这一点,请使参数成为指向您要传递的类型的指针。然后使用 &(地址操作数)将该值传递给调用。

例如

FindFoo(FOO** BeginKey);

并调用它:

FindFoo(&BeginKey);

在函数中:

*BeginKey = 0xDEADC0DE;

关于c - C函数中的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923948/

相关文章:

c - 如何设置 Travis 来构建 Arduino/Spark/Teensy 库

c - 在 while 循环中逐行读取文件,同时另一个函数更新它

c - C main 函数是可选的吗?您可以在它之外编写代码吗?

javascript - jQuery 将参数传递给 .ajax()

vim - 将参数传递给 vim "execute"

PHP变量传递在数据库调用中不起作用

c - 在 printf ( "%.*f ", a, b ) 中,如果 'a' 为负数,结果会是什么?

c - 测试两个 __m128i 变量之间的相等性

javascript - 从类似函数列表中调用特定函数

javascript - javascript 中的 return 语句不退出函数?