Em desenvolvimentos recentes, o array bidimensional é usado como um parâmetro formal para chamar os shells médios e antigos da placa gráfica, e os seguintes modos comuns de modo de chamada são organizados (você pode experimentar a partir do código)!
O modo de aplicação correto:
void func1(int iArray[ ][10])
{
}
int main()
{
int array[10][10];
func1(array);
}
Corrija o modo de aplicativo dois (aplique um ponteiro de matriz unidimensional como parâmetro):
void func2(int (*pArray)[10]) //[10] 是指列
{
}
void func2_1(int (*pArray)[ ]) //未亲测
{
}
int main()
{
int array[10][10];
func2(array);
}
De fato, o nome de uma matriz bidimensional é um ponteiro para uma matriz unidimensional; portanto, esta declaração está correta. O comprimento da matriz unidimensional deve ser especificado.Se não for especificado, a declaração da função será compilada. Mas se houver um código de chamada, ele falhará na compilação, porque não há um tipo de parâmetro real que possa corresponder a int []. O
modo de aplicativo correto três (aplique a referência de matriz bidimensional como parâmetro)
void func3(int (&pArray)[10][10])//在此必须指明二个维数
{
}
int main()
{
int array[10][10];
func3(array);
}
Deve especificar o comprimento de duas dimensões
void func4(int (*pArray)[10][10])//必须指定二个维数
{
}
int main()
{
int array[10][10];
func4(&array);
}
Tem de especificar duas dimensões de comprimento
Nota: Os métodos acima quatro comum, mas quando a matriz é passado, apenas os valores tradicionais de parâmetros passados nenhuma mudança (pessoalmente usar apenas os dois primeiros)