Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Última revisão Ambos lados da revisão seguinte
vetor_matriz [d/mY H:i]
laureano
vetor_matriz [d/mY H:i]
laureano
Linha 220: Linha 220:
 } }
 </​code>​ </​code>​
 +
 +===== Matrizes como Parâmetros =====
 +
 +Quando se coloca um vetor como parâmetro, a Linguagem C passa somente o seu endereço, não fazendo uma cópia na pilha. Portanto, pode-se definir o parâmetro sem a quantidade de elementos, pois como só será recebido o endereço pode-se acessar toda a matriz através deste endereço. ​
 +
 +A mesma regra se aplica a matrizes para o caso da primeira dimensão. Pode-se não informar a quantidade de elementos da primeira dimensão. Devido á construção sintática da linguagem, deve-se porém informar as demais dimensões para que o compilador gere o código corretamente.
 +
 +Veja o exemplo:
 +<code c>
 +/* programa vetor_matriz_5.c */
 +#include <​stdio.h>​
 +
 +void imprime_1(int iVetor[]) /* Não é preciso informar o tamanho do índice.... */
 +{
 +   int i;
 +   ​printf("​Primeira Matriz\n"​);​
 +   for (i=0; i < 5; i++)
 +   {
 +      printf("​%d ", iVetor[i]); /* ...mas deve-se tomar cuidado na hora de manipular ao vetor, pois caso o programa “tente” acessar um 
 +                                   ​índice que não existe, o resultado será indesejado. */
 +   }
 +   ​printf("​\n\n"​);​
 +
 +   ​return;​
 +}
 +
 +void imprime_2(int iMatriz[][3]) /* Para a primeira dimensão, não é necessário informar a quantidade de índices. Mas para a demais é necessário. */
 +{
 +   int i,j;
 +   ​printf("​Segunda Matriz\n"​);​
 +   for (i=0; i < 3; i++)
 +   {
 +      for (j=0; j < 3; j++)
 +      {
 +         ​printf("​%d ", iMatriz[i][j]);​
 +      }
 +      printf("​\n"​);​
 +   }
 +   ​return;​
 +}
 +
 +int main(void)
 +{
 +   int iVetor[5] = {1, 2, 3, 4, 5};
 +   int iMatriz[3][3] = {{11, 12, 13},
 +                        {21, 22, 23},
 +                        {31, 32, 33}};
 +
 +   ​imprime_1(iVetor);​
 +   ​imprime_2(iMatriz);​
 +
 +   ​return 0;
 +}
 +</​code>​
 +
 + --- //​[[marcos@laureano.eti.br|Marcos Laureano]] 2008/05/15 16:34//
vetor_matriz.txt · Última modificação: d/mY H:i por laureano
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0