【发布时间】:2015-01-16 08:07:35
【问题描述】:
我想编写一个函数,将n 指针数组传递给float,并返回一个包含n float 值的新创建数组。代码如下:
float* duplicate(float* p[], int n){
float* const b = new float[n];
for (int i = 0; i < n; i++)
b[i] = *p[i];
return b;
}
我的问题是,我们为什么要将b 声明为const?如果我删除const,结果会受到什么影响?非常感谢!
【问题讨论】:
-
通过使用clockwise/spiral rule,变量
b是一个指向float的常量指针,也就是说这个指针是常量,你不能改变它。 -
代码无效,我想你的意思是
return b;。在这种情况下,将b设为const指针没有任何区别,无论您是否这样做,代码都很糟糕。请改用std::vector<float>。 -
对不起,这是一个错字。是返回 b; .谢谢指出!
-
澄清一下,
p中的每个指针都指向一个浮点数? (不是数组的第一个浮点数)? -
@Praetorian 为什么他们应该使用向量来代替?