C++ 中二维数组的使用

2019-08-20  本文已影响0人  发现自己是一条咸鱼

参考链接

创建空间大小固定的数组

# define N 16
int a[N][N];
int b[7][7]; //中括号内应该为常量。
const int n =9;
int c[n][n]; //n被声明为常量
//没有任何初始化下,该变量值是任意值
int c[n][n]={};
或者
int c[n][n]={0};
//这两种情况所有的元素都内初始化为0

创建动态二维数组

    int **p = new int *[N];//创建过程
    for (i = 0; i < N; i++)
        p[i] = new int[N];
    for (i = 0; i < N; i++)
        for (j = 0; j < N; j++)
        {
            p[i][j] = 0;
            cout << p[i][j] << endl;
        }
    for (i = 0; i < N; i++) //释放过程
        delete [] p[i];
    delete[] p;

这个过程的思想是,将二维数组看成是一个数据类型为int * 的一维数组p[i]相当于数组名,然后int * 指向一个数据类型为int的一维数组p[i][j]。

利用vector数组

#include<vector>
vector<vector <int>> v(3,vector<int>(3));//将vector数组初始化为3*3的矩阵

二维数组参数传递

规定:如果将二维数组作为参数传递给函数,那么在函数的参数声明中必须指明述数组的列数,数组的行数没有太大的关系,可以指定也可以不指定。因为函数调用时传递的是一个指针,它指向由行向量构成的一维数组。

若将列数省略,系统无法决定多少行多少列。下面表示的定义都是不合法的

上一篇 下一篇

猜你喜欢

热点阅读