如果我有一个接受 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/