c - 如何从 C 中的函数更改全局定义的变量

标签 c data-structures

我将结构作为变量传递给函数,该函数接受结构参数。

然后我正在更改函数内传递的结构的一些值,并且我想更改以相同名称定义的全局变量。

struct Neuron{

double Center[3];
char name;
int xCor;
int yCor;

};

struct Neuron Q;
struct Neuron W;
struct Neuron E;
struct Neuron R;


void Winning_NEURON(struct Neuron K){
for(int i=0; i<3; i++){

   K.Center[i] =  K.Center[i]+(learningParam*(inputArray[i]-K.Center[i]));
}

因此,如果我将神经元 Q 传递给函数,数据会正确计算,但 Q 神经元值不会更改,我如何才能全局更改而不仅仅是局部更改?

最佳答案

struct Neuron 类型的参数按值传递,这意味着函数接收结构的副本,而原始数据保持不变。要通过引用传递,请将参数设为指针 (struct Neuron *) 并传递原始地址,例如 &Q

关于c - 如何从 C 中的函数更改全局定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53992193/

相关文章:

c - R 中的 GSL 库

c - printf'ing float 时的舍入问题

algorithm - 查找距给定区号最近的配送中心

java - 在 Java 中创建类似结构的数据结构

c - 考虑使用粒子电子作为过程 Controller

c - 如何分配一个变量指针来访问msp430上的硬件寄存器?

算法和数据结构 : should I study language specific books or generic books?

c - 最合适的排序算法

java - 如何在java spring REST上返回由对象包装的数组字节

sql - 全文搜索只匹配某些词?