gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:22:44 41 4
gpt4 key购买 nike

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

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com