可以用函数返回一个数组吗?
int trsmat(int a[][5]){int b[5][1];
int i;
int j;
for(i=0;i<1;i++)
for(j=0;j<5;j++)
b[j][i]=a[i][j];
return b;
}这个函数对吗?
编译后的错误如下,给指点一下吧,谢谢 啊!
error C2440: 'return' : cannot convert from 'int [5][1]' to 'int'
就像编译器报的错误:不能从int [5][1]强制转换为int类型。
代你修改一下:
int** trsmat(int a[][5]) //二维数组与二级指针相当,故添**
{static int b[5][1]; //要加static以延长b[][]的“生命”
int i;
int j;
for(i=0;i<1;i++)
for(j=0;j<5;j++)
b[j][i]=a[i][j];
return b;
}
汗...你知道为什么 scanf("%s",a); 可以不用写&吗..不就是因为所谓数组就是指其数组第一个元素的指针吗?
不过我想5楼也有一点不成问题的问题.
我想还是写成 return b; 比较好吧..虽然函数强制返回了指针.不过很容易叫人误解.
如果你有别的特别的意思(故意写成那样) 那就是我多嘴了.