我正在将结构作为变量传递给函数,该函数接受结构参数。
然后我要更改函数内部传递的结构的某些值,我想更改以相同名称定义的全局变量。
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神经元值不会改变,我怎么能全局改变而不仅仅是局部改变?
答案 0 :(得分:3)
类型struct Neuron
的参数通过值传递,这意味着该函数将接收结构的副本,而原始结构将保持不变。要通过引用传递,请将参数设置为指针(struct Neuron *
),然后传递原始地址,例如&Q
。