C++ "int *" 类型的实参与 "int **" 类型的形参不兼容
来源:2-12 二维数组作为参数
cn_five
2018-01-12 11:28:57
#include<iostream> using namespace std; //声明求数组最大值的函数 int sum(int *(a)[4], int len) { int i, j, s = 0; for (i = 0; i < len; i++, a++) { for (j = 0; j < 4; j++) { s += *(*a + j); } } return s; } int main() { //定义一维数组 int num[3][4] = { 4,5,2,6,12,7,5,0,3,1,3,4 }; //调用函数,输出返回值 cout << "数组num的最大值为:" << sum(num, 3) << endl; //C++ "int *" 类型的实参与 "int **" 类型的形参不兼容 system("pause"); return 0; }
请问老师这个问题怎么回事?
3回答
int sum(int *(a)[4], int len)
这里的参数设置错误,第一个参数是个数组指针,正确写法如下。
int sum(int (*a)[4], int len)
倚松听花语
2018-01-12
(*a)[4] 这个是数组指针
*a[4] 这个是指针数组
cn_five
提问者
2018-01-12
嘿嘿,说错了。
相似问题