【问题标题】:I want to pass a array to function my reference and return array我想传递一个数组来运行我的引用并返回数组
【发布时间】:2017-03-29 21:48:24
【问题描述】:

我为一个对数组进行排序的函数编写了代码,然后我可以在主文件中访问它。

我面临的问题是我无法理解如何传递数组和对数组进行排序。

函数的初始化。

void sort (int *ary[], int len);

主要功能

int main ()
{
    int max [4]= {2,8,5,9};
    sort(&max, 4);
     for (int l =0; l<4;l++)
     {
         cout<< max[l]<< " "<< endl;
     }
    system("pause");
    return 0;
}

通过冒泡排序对数组进行排序的函数。

void sort (int *ary[], int len )
{
    int temp=0;
    for (int i = 0; i<len; i ++)
    {
        for (int j= 0 ; j<len ;j++)
        {
            if (ary[j]> ary[j+1])
            {
                temp = ary[j];
                ary[j] = ary[j+1];
                ary[j+1]= temp;
            }
        }
    }
}

我收到以下错误消息:

visual studio 2012\projects\problem2\problem2\pract.cpp(11):错误 C2664: 'sort' : 无法将参数 1 从 'int [4]' 转换为 'int *[]'

如何解决此错误?

【问题讨论】:

    标签: pointers visual-studio-2012 reference


    【解决方案1】:

    int *ary[] 表示指针数组。你可以写int ary[]来取一个数组:

    void sort(int ary[], int len);
    

    由于是函数参数,int ary[]int* ary的含义相同,所以上面等价于:

    void sort(int* ary, int len);
    

    最后,这样称呼它(因为array-to-pointer decay):

    sort(max, 4);
    

    【讨论】:

      猜你喜欢
      • 2021-08-25
      • 1970-01-01
      • 2019-10-19
      • 2018-07-31
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      相关资源
      最近更新 更多