我是 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;
}
原文由 drainzerrr 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里
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()
将接受它。