<分区>
假设我们有:
void foo(int *num){}
而且我们知道我们总是将 5 作为参数传递,然后可以这样做:
int var = 5;
foo(&var);
有什么语法可以避免显式变量声明吗?
本质上是这样的:
foo(&(5));
<分区>
假设我们有:
void foo(int *num){}
而且我们知道我们总是将 5 作为参数传递,然后可以这样做:
int var = 5;
foo(&var);
有什么语法可以避免显式变量声明吗?
本质上是这样的:
foo(&(5));
最佳答案
你只能取lvalue的地址.文字是纯右值,而不是左值,因此您不能获取文字的地址。从概念上讲,像 5
这样的文字不需要任何存储空间,没有某种形式的存储空间就没有地址。
不过,您可以将它传递给 const int &
。
void foo(const int &) {}
int main()
{
foo(5);
}
关于c++ - 是否可以将指针传递给文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50536802/