#include <bits/stdc++.h>
using namespace std;
int* insertionSort(int* a);
int main()
{
int a[5];
for(int i=0;i<5;i++)
{
cin>>a[i];
}
int b[5];
*b = insertionSort(a);
for(int i=0;i<5;i++)
{
cout<<b[i]<<" ";
}
}
int* insertionSort(int* a)
{
for(int i=1;i<5;i++)
{
int key=a[i];
int j=i-1;
while(j>0 && a[j]>key)
{
a[j]=a[j+1];
j-=1;
}
a[j+1]=key;
}
return a;
}
所以这是我的代码插入排序。但是当我运行它时,它给了我错误C++数组传递和返回
insertionSort.cpp: In function ‘int main()’: insertionSort.cpp:15:21: error: invalid conversion from ‘int*’ to ‘int’ [-fpermissive] *b = insertionSort(a);
我想知道在函数中传递和返回数组如何在C++中工作。我的代码中有什么错误?
P.S:可能发生我的插入代码可能错误。我没有真正测试过,所以请原谅我,因为这个错误我无法检查它。如果有人可以详细解释它,这将非常有帮助。
数组不是指针和指针不是数组。 – molbdnilo