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

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

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/

10-09 00:16