我正在尝试通过使用指针来引用数组
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绑定到数组第一个元素的地址吗?
谢谢!
要使用指针引用数组,您不需要任何特殊的操作:
double* b = a;
如果您想要一个指向整个数组的指针,而不是仅指向第一个元素的指针,则为:
double (*b)[5] = &a;
,但这非常不寻常,并且会极大地混淆任何读者。
如果要引用整个数组(无指针):
double (&b)[5] = a;
它通常用作函数参数,但我从未见过在其他地方使用它。
如果要引用指定第一个元素的指针,则它必须是const,因为转换的结果(包括数组到指针的转换)是一个右值,并且不能绑定到非const引用:
double *const (&b) = a;
而且,如果您确实需要对指针的非常量引用,则必须引入一个指针变量:
double* pa = a;
double* (&b) = pa;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句