C/C++における2次元配列を関数パラメータとして------方法及び要点説明
**
1.パラメータは2次元の長さを与えます.
**C/C++の2次元配列を関数パラメータとする場合は、行番号を書かなくてもよいが、必ず列番号を明記しておく(注意、注意、注意、注意!).
理由:要素のアドレスを計算するには、コンパイラが下付き文字を明記する必要があります.
**
2,形参は配列を指すポインタとして宣言され,必ず列番号(注意,注意,注意!)を明記しなければならない.
**
3、パラメータはポインタのポインタを使用します(列番号を指定する必要はありません)
**注意**は、**が関数に渡された2次元配列(ポインタ)を使用して配列の値を取る場合、(array[i][j])という形式で値を取ることはできません.2次元配列を1次元配列と見なし、array[i*j+j]という形式で値を取るべきです.
1.パラメータは2次元の長さを与えます.
**C/C++の2次元配列を関数パラメータとする場合は、行番号を書かなくてもよいが、必ず列番号を明記しておく(注意、注意、注意、注意!).
int array[3][3];
:void fuc(int a[][3]);
:fuc(array);
—— fuc ,a 。 a[i][j] 。
理由:要素のアドレスを計算するには、コンパイラが下付き文字を明記する必要があります.
**
2,形参は配列を指すポインタとして宣言され,必ず列番号(注意,注意,注意!)を明記しなければならない.
**
int *array[3];
for(i = 0; i < 3; i++)
array[i] = new int[3];
:void fuc(int *a[3]);
:fuc(array);
—— fuc ,a 。 *(a[i] + j) 。
3、パラメータはポインタのポインタを使用します(列番号を指定する必要はありません)
int **array;
array = new int *[3];
for(i = 0; i <3; i++)
array[i] = new int[3];
:void fuc(int **a);
:fuc(array);
—— fuc , a 。 array[i * j + j] 。
**注意**は、**が関数に渡された2次元配列(ポインタ)を使用して配列の値を取る場合、(array[i][j])という形式で値を取ることはできません.2次元配列を1次元配列と見なし、array[i*j+j]という形式で値を取るべきです.