Sobre métodos de chamada comuns de matrizes bidimensionais

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


O modo de aplicativo correto 4 (usando uma matriz de ponteiro bidimensional como parâmetro):
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)
Publicado 20 artigos originais · Curtidas6 · Visitas 10.000+

Acho que você gosta

Origin blog.csdn.net/weixin_36662608/article/details/53792439
Recomendado
Clasificación