关于二维数组传参问题

1.c++primer中的推荐方法

这种方法传递时需要明确数组的大小,但当数组大小是一个变化的值时不使用。

#include <iostream>
using namespace std;
int test(int a[][5])
{
    cout << "yes";
    return 0;
}
int main()
{
    int a[10][5];
    test(a);
    return 0;
}

2.数组大小是个变化的值时代码如下:

这里数组大小不确定那么就用动态申请的方法,当然记得给每一行的指定下标寻址

#include <iostream>
using namespace std;
int test(int **a)
{
    cout << "yes";
    return 0;
}
int main()
{
    int m, n;
    cin >> m >> n;
    int **a = new int *[m];
    for(int i = 0; i < m; i++){
        a[i] = new int[n];    //若是char类型的数组则申请n+1
    }
    test(a);
    delete a;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/small__snail__5/article/details/80167875