我是C语言编程的新手,我在看一些代码。我想知道以下是什么意思:
adjust(&total, adjustmentFactor);
我知道
total
和adjustmentFactor
都是双精度的,但是由于该函数确实将输出分配给变量,因此我假设该函数更改了总点数?如果是这样,那么如果要实施调整,您将如何更改它? 最佳答案
是的,您是对的:“&”号采用左值(变量)的地址并将其作为指针传递。
您的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
;对于每个要为原始变量分配新值的用户,都应使用。