/ / Passando uma matriz como argumento de função de dentro de uma função que a leva como argumento em C - c, matrizes, ponteiros, imutabilidade, mutabilidade

Passando uma matriz como um argumento de função de dentro de uma função que a toma como um argumento em C - c, matrizes, ponteiros, imutabilidade, mutabilidade

Dia G!

Se eu tenho uma função que leva uma matriz de intscomo argumento e, a partir dessa função, enviar esse mesmo array para outra função, ele ainda poderá editar os valores do array e fazer com que eles sejam confirmados no nível principal e não no nível da função?

ou seja,

int
main(int argc, char *argv[]) {
int A[50];
functionB(A);
}

onde a função B se parece com:

void functionB(int A[]) {
functionC(A);
}

e a função C é aquela que realmente muda os valores dentro de A [].

Main veria a matriz alterada ou o A [] original?

Obrigado!

Respostas:

10 para resposta № 1

Matriz decai para ponteiro. Portanto, ele modificará a matriz original.

Verifique-o

void functionC(int A[]) {
A[0] = 1;
A[1] = 2;
}

void functionB(int A[]) {
functionC(A);
}

int
main(int argc, char *argv[]) {
int A[2]={5,5};

printf("Before call: %d  %dn",A[0],A[1]);
functionB(A);
printf("After call : %d  %dn",A[0],A[1]);
}