2 D配列の一般的な呼び出し方法について
1041 ワード
ここ数回の開発で2次元配列をパラメータとして使用したのは呼び出し中の古いグラフィックスシェルで、いくつかの一般的な呼び出しモードモード(コードから体得しましょう)を整理しました!
正しい応用モード1:
正しい適用モード2(パラメータとして1次元配列ポインタを適用):
実は2次元配列名は1次元配列を指すポインタなので、この宣言方式はOKです.1次元配列の長さを指定する必要があります.指定しない場合は、関数宣言コンパイルが通過します.しかし、呼び出しコードがあると、実パラメータタイプがint[]に一致しないため、コンパイルは通過しない.
正しい適用モード3(パラメータとして2 D配列参照を適用)
2つの次元の長さを指定する必要があります
正しい適用モード4(パラメータとして2 Dポインタ配列を適用):
注意:以上の4つの方法は共通していますが、配列が伝達される場合は、値のみが伝達され、伝達パラメータは変更されません(個人は前の2つしか使用されません)
正しい応用モード1:
void func1(int iArray[ ][10])
{
}
int main()
{
int array[10][10];
func1(array);
}
正しい適用モード2(パラメータとして1次元配列ポインタを適用):
void func2(int (*pArray)[10]) //[10]
{
}
void func2_1(int (*pArray)[ ]) //
{
}
int main()
{
int array[10][10];
func2(array);
}
実は2次元配列名は1次元配列を指すポインタなので、この宣言方式はOKです.1次元配列の長さを指定する必要があります.指定しない場合は、関数宣言コンパイルが通過します.しかし、呼び出しコードがあると、実パラメータタイプがint[]に一致しないため、コンパイルは通過しない.
正しい適用モード3(パラメータとして2 D配列参照を適用)
void func3(int (&pArray)[10][10])//
{
}
int main()
{
int array[10][10];
func3(array);
}
2つの次元の長さを指定する必要があります
正しい適用モード4(パラメータとして2 Dポインタ配列を適用):
void func4(int (*pArray)[10][10])//
{
}
int main()
{
int array[10][10];
func4(&array);
}
は、2つの次元の長さを指定する必要があります.注意:以上の4つの方法は共通していますが、配列が伝達される場合は、値のみが伝達され、伝達パラメータは変更されません(個人は前の2つしか使用されません)