使用C++中的指针调用函数

gma*_*ter 2 c++ pointers

非常简单,我正在重新学习C++,而且我正在指点.我理解基本概念,但我遇到了一些麻烦.调用此函数的语法是什么?

void getTime(int& hours, int& minutes, int& seconds) const
{
    hours = hr;
    minutes = min;
    seconds = sec;
}
Run Code Online (Sandbox Code Playgroud)

正如您可能已经猜到的那样,函数的关键是将小时,分钟和秒的时间返回到位于函数调用所在范围内的三个指针.假设已经定义了hr,min和sec .

此外,如果有人想详细说明指针(特别是何时使用&何时使用*),将非常感激.预先感谢.

ato*_*inf 5

您的函数签名使用&,表示传递引用.这意味着您只需调用您的函数

int h, m, s;

// ... code ...

getTime(h, m, s);
Run Code Online (Sandbox Code Playgroud)

因为您的函数通过引用传递这些参数,所以每当getTime()更改传递的参数之一时,更改将传播到函数外部,而不是通过值传递的参数,其中更改仅限于函数范围.

您可以通过将指针传递给变量来实现类似的效果:

void getTime(int * hours, int * minutes, int * seconds)
{
     // do stuff
}

// ... code ...

int h, m, s;
getTime(&h, &m, &s);
Run Code Online (Sandbox Code Playgroud)

在后一种情况下,&是运营商的地址.通过取消引用传递的地址,您的函数可以在其功能范围之外更改内存.