当数组在调用函数中作为参数传递时,为什么无法使用调用函数中的foreach循环打印数组值? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我试图使用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循环有何帮助。或者我在这里编码的错误?

我期待着你的帮助。提前致谢。

c++ c++11 foreach
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.