c++ - 将 double 数组绑定(bind)到 double*&

标签 c++ reference

我正在尝试使用指针来引用数组

double a[5];
double*& b = a; //doesn't compile
double*& b = &a[0]; //doesn't compile either
double*& b = &static_cast<double*>(a); //nope

有没有办法让b绑定(bind)到数组第一个元素的地址?

谢谢!

最佳答案

要使用指针来引用数组,你不需要任何东西 特别:

double* b = a;

如果你想要一个指向整个数组的指针,而不是仅仅 第一个元素,它是:

double (*b)[5] = &a;

,但这非常不寻常,并且会极大地混淆任何读者。

如果你想引用整个数组(没有指针):

double (&b)[5] = a;

这个经常被用作函数参数,但是我没见过 它在别处使用。

如果你想要一个指向第一个指针的引用 元素,它必须是常量,因为转换的结果 (包括数组到指针的转换)是一个右值,并且 不能绑定(bind)到非常量引用:

double *const (&b) = a;

如果你真的需要一个指针的非常量引用, 你必须引入一个指针变量:

double* pa = a;
double* (&b) = pa;

关于c++ - 将 double 数组绑定(bind)到 double*&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18018098/

相关文章:

c++ - gsoap,从旧版本迁移 - xml 响应名称和结构已更改

c++ - 在 Visual Studio 2013 中将 libcurl 库静态链接到我的项目(一个 dll)

c++ - 空范围的 std::copy() 或 std::move() 是否需要有效目的地?

c++ - 包含引用的对象 vector

c++ - 我怎样才能在 vector 中有一对引用?

C++ - 理解引用和内存地址

c++ - 在 solaris 10 上编译 gtk2.4 示例代码时出错

java - 从静态方法 java 引用实例变量

c++ - 使用对函数和 IO 对象的引用(作为参数)的目的是什么?

c++ - 候选构造函数(隐式复制构造函数)不可行 : expects an l-value for 1st argument