c++ - *& 在函数参数中是什么意思

标签 c++ function parameters

如果我有一个接受 int *& 的函数,这意味着什么?我怎样才能将一个 int 或一个指针 int 传递给该函数?

function(int *& mynumber);

每当我尝试将指针传递给该函数时,它都会显示:

error: no matching function for call to 'function(int *)'
note: candidate is 'function(int *&)'

最佳答案

它是对指向 int 的指针的引用。这意味着有问题的函数可以修改指针以及 int 本身。

你可以只传入一个指针,一个复杂的问题是指针需要是一个左值,而不仅仅是一个右值,例如

int myint;
function(&myint);

单独是不够的,0/NULL 也是不允许的,其中:

int myint;
int *myintptr = &myint;
function(myintptr);

可以接受。当函数返回时,很可能 myintptr 将不再指向它最初指向的内容。

int *myintptr = NULL;
function(myintptr);

如果函数期望在给定 NULL 指针时分配内存,也可能有意义。检查随函数提供的文档(或阅读源代码!)以了解如何使用指针。

关于c++ - *& 在函数参数中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4185776/

相关文章:

c# - params object[] 方法参数装箱了吗?

c# - SqlCommand 参数与 String.Format

java - Wicket PageParameters 干扰页面的模型对象

c++ - 头文件中的 `static` , `extern` , `const`

php - 用外行的话来说是使用 PHP 的递归函数

jquery - 检查函数是否动态存在

php - 在 PHP 中将数组作为参数而不是数组传递

c++ - 来自用作模板参数的指针的类类型

c++ - 如何获得具有 3x3 矩阵的仿射变换?

c++ - Dev C++ 控制台窗口属性