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 № 1Matriz 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]);
}