这个问题在这里已有答案:
我试图使用foreach循环打印被调用函数中的数组值但面临编译错误。在linux平台上使用c ++ 11编译器并使用VIM编辑器。
当从调用函数传递大小时,尝试使用C风格的for循环并且它起作用
#include <iostream>
using namespace std;
void call(int [], int);
int main()
{
int arr[] = {1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
call(arr,size);
}
void call(int a[],int size)
{
for(int i =0 ; i<size; i++)
cout << a[i];
}
For-each循环在下面的代码中使用,无法编译。
#include <iostream>
using namespace std;
void call(int []);
int main()
{
int arr[] = {1,2,3,4,5};
call(arr);
}
void call(int a[])
{
for ( int x : a )
cout << x << endl;
}
for C ++ 11中的每个循环都希望知道要迭代的数组的大小?如果是这样,它对传统for循环有何帮助。或者我在这里编码的错误?
我期待着你的帮助。提前致谢。