c - 通过点作为 C 中的引用?

标签 c pointers

在 C 中,我想将指针传递给另一个函数,所以我编写了以下代码,

node* list // contains linked list of nodes

void function (node* list){

/*Whatever I do here, I want to make sure that I modify the original list, 
  not the local copy. +

  how do I pass the original pointer 'list' to this function so that I'm working  
  on the same variable? */

}

[编辑]

我只想在这里澄清几件事,

我实际上有一个 void 函数,它接受一个 struct 参数,

void function (struct value arg){ }

在结构中,我将我的内部变量之一定义为,

node* list-> list;

所以在我的函数中,如果我做类似的事情,

arg->list

我访问的是原始列表变量吗?

最佳答案

回答您的编辑:

不,您是按值传递结构,因此函数包含结构的副本。如果您不返回函数中的结构并从调用函数的位置获取它,它将丢失。

请记住,C 不会通过引用传递。它是通过传递指针来模拟的。你可以改为这样做:

void function (struct value* arg)
{
....
}

并且会修改原来的结构。

关于c - 通过点作为 C 中的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648324/

相关文章:

c - 关于 OpenMP 的简单问题

c - 下面写的两组代码有什么区别

c - 通过 HTTP 向网站发送数据

c++ - 将堆上的结构从 C++ 转换为 C

c - 使用非常量初始值设定项定义全局变量

c++ - 当我尝试构建 gnome builder 时,ninja 在 glib ctype.h 文件中给出错误

c++ - C++标准库中的参数类型

php - PHP 变量是否应该在用作 OUT 函数参数之前进行初始化?

c++ - 为什么存储指向内部存储器的普通指针的结构不能存储在 stxxl 容器中?

c++ - 关于c++中的指针