怎么给一维数组函数参数,传二维数组,想了一晚上没搞出来

请问func ( int A[ ], int n ) 怎么传二维数组?求解答 二维数组M 将M作为实参 形参A为传入矩阵

img

供参考:

#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过去