【发布时间】:2021-04-20 23:06:46
【问题描述】:
为什么不能构建范围表达式,将数组作为函数参数传递并在范围换语句中使用。 感谢您的帮助
void increment(int v[]){
// No problem
int w[10] = {9,8,7,6,5,4,3,2,1,9};
for(int& x:w){
std::cout<<"range-for-statement: "<<++x<<"\n";
}
// error: cannot build range expression with array function
// parameter 'v' since parameter with array type 'int []' is
// treated as pointer type 'int *'
for(int x:v){
std::cout<<"printing "<<x<<"\n";
}
// No problem
for (int i = 0; i < 10; i++){
int* p = &v[i];
}
}
int main()
{
int v[10] = {9,8,7,6,5,4,3,2,1,9};
increment(v);
}
【问题讨论】:
-
错误已经告诉你出了什么问题。您没有数组函数参数。你有一个指针函数参数。
-
你们不知道我在学习 C++ 方面付出了哪些努力,因为对我来说一切都是从另一种语言而来的新事物。我认为 SO 适合那些想提供帮助的人,而不是那些认为自己是一切的主人的人。
-
你在回应我没有提出的论点。我没有声称您没有做出任何努力,我只是声称您的问题显示没有做出任何努力。越清楚你理解困难的部分,任何答案就越合适。一个问题有多好,与它是否是初学者问题无关。 (但无论如何,这将是我在这里的最后评论。这样的讨论也不是 SO 的目的。)
标签: c++