[英]What does ampersand mean in function call?
我是 C 编程的新手,我正在查看一些代码。 我想知道以下是什么意思:
adjust(&total, adjustmentFactor);
我知道total
和adjustmentFactor
都是双精度值,但是由于这个函数确实将输出分配给了一个变量,我假设该函数改变了 total 指向的内容? 如果这就是它的作用,如果您要实施调整,您将如何更改它?
是的,您是对的:与号获取左值(变量)的地址并将其作为指针传递。
您的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
,并且每次您想为原始变量分配一个新值时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.