【发布时间】:2017-06-19 11:07:11
【问题描述】:
有人可以向我解释为什么无论 n 是多少,这个 for 循环都只运行一次:
double CalcDist(unsigned int n, Point p, Point* s)
{
double sd[n];
for(int i = 0; i < n; i++)
{
sd[i] = s[i].Dist_To(p);
return sd[i];
}
}
提前感谢您的帮助。
【问题讨论】:
-
当
n不是编译时间常数时,double sd[n];在 C++ 中是不允许的。您似乎在使用 gcc 扩展。 -
您预计会发生什么?
-
n 在运行时声明,然后传递给这个函数。我希望循环运行 n 次
-
return sd[i];不仅会导致循环中断,还会将函数返回给调用线程。 -
@Raindrop7 如何将值返回到数组中?
标签: c++ arrays class c++11 for-loop