我正在编写一个函数,目的是交换数组中的第一个和最后一个元素,以及一个测试它的主函数。代码如下:
#include <iostream>
using namespace std;
//function a
firsttolast (int x[], int size)
{
int temp1;
int temp2;
temp1 = x[0];
temp2 = x[(size - 1)];
x[0] = temp2;
x[(size - 1)] = temp1;
}
int main()
{
int X = 10;
int array[10];
cout << "Please enter " << X << " integer elements of an array." << endl;
for (int i = 0; i < X; ++i)
{
cin >> array[i];
}
firsttolast (array[10], X);
for (int i = 0; i < X; ++i)
cout << array[i] << endl;
}
错误在这一行:
firsttolast (array[10],X);
如下:
[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
[Error] initializing argument 1 of 'double firsttolast(int*, int)' [-fpermissive]
答案 0 :(得分:4)
调用该函数时,您只需省略[10]
部分:代码变为......
firsttolast(array, X);
错误的原因是array[10]
是一个单独的元素(顺便说一句,因为它将是十个元素数组中的第十一个)。