[英]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.