【发布时间】:2018-03-12 18:20:36
【问题描述】:
我可以通过将(c,a,b) 传递给add_mat 函数来实现它,其中a,b 的结果存储在c 中,
void add_mat(int c[][3], int a[][3], int b[][3], int m, int n)
如果我想这样构造函数,add_mat的返回类型应该是什么
?? add_mat(int a[][3], int b[][3], int m, int n)
下面是示例代码
#include<stdio.h>
void read_mat(int a[][3], int m, int n){
//scan data
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
printf("[%d][%d] : ",i,j);
a[i][j]=i+j;
}
}
}
int* add_mat(int a[][3], int b[][3], int m, int n){
int c[3][3];
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
c[i][j]=a[i][j]+b[i][j];
}
}
return c;
}
int main(){
int a[3][3];
int m=2,n=2; //mxn of a matrix
read_mat(a, m, n);
//add
int b[3][3];
read_mat(b, m, n);
int* c[3][3];
c = add_mat(a,b,m,n);
return 0;
}
就像将add_mat 函数中的计算值c 传递或指向main 函数中的变量一样。
【问题讨论】:
-
我建议
int c[3][3]; add_mat(c, a, b, m, n);
标签: c arrays function pointers multidimensional-array