我是 C++ 语言的新手,对指针及其用法一无所知。我在在线编译时遇到错误 [Error] invalid conversion from 'int' to 'int*' [-fpermissive]"
:
cout << midd (ax [10], asize) << endl;
这是代码:
#include <iostream>
using namespace std;
double midd(int arr[10], int size);
int main() {
int ax[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int asize = 10;
cout << midd(ax[10], asize) << endl;
}
double midd(int arr[10], int size) {
int acount = 0;
int mid1;
int mid2;
int amid = size / 2;
double mid = 0.0;
while (acount < 10) {
if (acount == amid) {
mid1 = arr[acount];
}
else if (acount == (mid + 1)) {
mid2 = arr[acount];
}
++acount;
}
mid = (mid1 + mid2) / 2.0;
return mid;
}
最佳答案
在这里midd(int arr[10],int size);
期待 int* 并且您正在尝试传递 int 值( ax[10] 这也是错误:ax 只有 10 个元素,您尝试使用第 11 个元素),并且编译器无法转换 int
至 int*
所以它显示“[错误] 从‘int’到‘int*’的无效转换 [-fpermissive]”。
要使此程序正确,您必须进行此更改。
替换
cout<< midd (ax[10], asize );
与cout<< midd (ax, asize );
-现在传递了 ax (
int*
) 的指针,所以midd()
会接受的。
关于c++ - 传递数组时从 'int' 到 'int*' [-fpermissive] 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46232470/