【发布时间】:2016-10-07 14:56:36
【问题描述】:
当我尝试编译我的代码时出现错误
无法将 'float' 转换为 'const float*'。
我在想也许我需要传递一个const,但这不重要。
#include <iostream>
using namespace std;
static float foo(const float *pArray,int n);
int main() {
foo(3.145f,5);
return 0;
}
static float foo(const float *pArray,int n)
{
return 0;
}
【问题讨论】:
-
听起来很明显,这是因为浮点数不是指向浮点数的指针。
-
3.145f不是数组或指针,它只是一个float -
@NathanOliver 我不明白 *pArray 需要如何成为一个数组。如果它是一个数组,我们不会看到类似 pArray[5] 之类的东西。我想说的是,没有迹象表明 pArray 是一个数组,尽管名称表明它是一个数组,但它怎么会很明显呢?跨度>
-
@Darraptor;它是一个指针,您已经指出它是一个指向数组(第一项)的指针。如果需要,您可以将指针传递给单个
float。或者一个空指针。 -
您可以通过传递
std::array或std::vector而不是原始指针(它们本身不区分用例)来使其“显而易见”
标签: c++ parameter-passing