我正在尝试使用指针来引用数组
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/