请问func ( int A[ ], int n ) 怎么传二维数组?求解答 二维数组M 将M作为实参 形参A为传入矩阵
供参考:
#include <stdio.h>
#include <stdbool.h>
#define N 3
bool func(int A[], int n)
{
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
if ((i == j && A[n * i + j] != 1) || (i != j && A[n * i + j] == 1))
return false;
}
return true;
}
int main()
{
int M[N][N] = { 1,0,0,
0,1,0,
0,0,1 };
if (func(M[0], N))
printf("M是单位矩阵");
else
printf("M非单位矩阵");
return 0;
}
不知道你问的是啥语言,你这标记的是C#,c++,c
就是c/c++来说,就是指针(二维也好,一维也罢内存都是连续分配的)。而且是方法签名是行列相等,内部就知道边界是N*N个元素
对于C#来说是封送第一行第一列的指针 A[0][0]
至于你题目说的非要是一维,还不准指针。你直接copy到一维就行对,就是从新 new 一个 int[n*n],然后memcopy过去