从我的main方法中,我想声明一个double数组(但不初始化它)并将其传递给函数。在该函数中,将使用一些值初始化数组。 现在回到我的主要方法中,我想读取并显示这些值。
populateValues (double*& values) {
values [0] = 100;
values [1] = 200;
values [2] = 300;
}
int main() {
double values[3];
populateValues(values);
for (int i=0; i <3; i++) {
std::cout << values[i] << std::endl;
}
}
但是,当我编译上面的代码时,出现错误消息:
error: invalid initialization of non-const reference of type ‘double*&’ from an rvalue of type ‘double*’
毫无疑问,我在传递参数方面有问题,但我不知道如何解决。
答案 0 :(得分:0)
#include <iostream>
void populateValues (double * values) {
values [0] = 100;
values [1] = 200;
values [2] = 300;
}
int main() {
double values[3];
populateValues(values);
for (int i=0; i <3; i++) {
std::cout << values[i] << std::endl;
}
}
答案 1 :(得分:0)
对于double values[3];
,值的类型为double[3]
,可能会衰减为double*
。
期望double*&
要求类型为double*
的真左值。而且临时不能绑定到否 -const引用
您可能会更改为
void populateValues(double (&values)[3])
void populateValues(double* values)
void populateValues(double*const &values)
临时目录绑定到 const 参考。