c++ - 是否可以将指针传递给文字?

标签 c++ pointers methods syntax literals

<分区>

假设我们有:

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/

相关文章:

PHP 和 C++ 发送/接收事件

asynchronous - 如何在执行异步调用的 meteor 方法上执行回调?

ruby - 遍历日期以查找日期之间的天数

c++ - 如何用前导零填充数组?

c++ - 为什么要在 hash<int>()(foo) 中间添加额外的括号

c++ - Visual Studio 2010 (C++) 极不稳定

c++ - 如何在另一个对象中引用一个对象

c++ - 访问指针类型的静态属性

c++ - C中的动态大小数组

methods - 从特征实现静态方法时名称解析错误