我是C语言编程的新手,我在看一些代码。我想知道以下是什么意思:

adjust(&total, adjustmentFactor);


我知道totaladjustmentFactor都是双精度的,但是由于该函数确实将输出分配给变量,因此我假设该函数更改了总点数?如果是这样,那么如果要实施调整,您将如何更改它?

最佳答案

是的,您是对的:“&”号采用左值(变量)的地址并将其作为指针传递。

您的adjust()函数如下所示:

void adjust(double *a, double f) {
   ... do a lot of stuff
   *a = *a * f/2+1.0;     // dummy formula that will change the content
   ...
};


因此,在函数中,每当您要使用第一个参数所指向的值时,便要使用*a;对于每个要为原始变量分配新值的用户,都应使用。

08-27 00:11