我为一个对数组进行排序的函数编写了代码,然后我可以在主文件中访问它。
我面临的问题是我无法理解如何传递数组并对数组进行排序。
初始化功能。
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:&#39;排序&#39; :无法从&#39; int [4]&#39;转换参数1到&#39; int * []&#39;
如何解决此错误?
答案 0 :(得分:0)
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);