Peixoto 0 Denunciar post Postado Setembro 2, 2006 :( Alguem poderia explicar o texto abaixo ? o compilador C calcula o tamanho, em bytes, necessário para armazenar uma matriz. Este tamanho é: tam1 x tam2 x tam3 x ... x tamN x tamanho_do_tipoO compilador então aloca este número de bytes em um espaço livre de memória. O nome da variável que você declarou é na verdade um ponteiro para o tipo da variável da matriz. Este conceito é fundamental. Eis porque: Tendo alocado na memória o espaço para a matriz, ele toma o nome da variável (que é um ponteiro) e aponta para o primeiro elemento da matriz. Mas aí surge a pergunta: então como é que podemos usar a seguinte notação? nome_da_variável[índice]Isto pode ser facilmente explicado desde que você entenda que a notação acima é absolutamente equivalente a se fazer: *(nome_da_variável+índice)Agora podemos entender como é que funciona um vetor! Vamos ver o que podemos tirar de informação deste fato. Fica claro, por exemplo, porque é que, no C, a indexação começa com zero. É porque, ao pegarmos o valor do primeiro elemento de um vetor, queremos, de fato, *nome_da_variável e então devemos ter um índice igual a zero. Então sabemos que: *nome_da_variável é equivalente a nome_da_variável[0]Obrigado, Compartilhar este post Link para o post Compartilhar em outros sites
vinnydracon 0 Denunciar post Postado Setembro 3, 2006 olá Peixoto td bem?cara é o seguinte matrizes e vetores são meio chatos mas são os mais funcionais. bom a explicação de o pq ele começa no 0, na miha opinião é pq ele é o 1º numero, msm sendo o "0":Dentão 0 sempre é a 1ª posição de um vetor e tipo se ele for de 10 posições(exemplo: vet[10]), lembre-se q ele começa no 0 e por isso esse vetor percorrerá até o 9, já q forma 10 posições a msm çógica pode- se ser aplicada a matriz.abracos e boa sorte!!!espero ter ajuda!!!! Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Setembro 9, 2006 O que ele está dizendo é que vetores são de certo modo ponteiros. Imagine a situação: int *ponteiro; Declaramos um ponteiro para um inteiro. Se fizermos ponteiro++ é diferente de fazermos *ponteiro++; No primeiro caso ele vai incrementar a memória para o qual o ponteiro aponta, e apontará para um outro elemento. No segundo caso ele incrementará o valor para o qual o ponteiro aponta. Se você pensar bem, este ponteiro com a memória devidamente alocada tem o funcionamento igual ao de um vetor. Como nós acessamos o primeiro elemento do vetor? vetor[0] Como nós acessamos o primeiro elemento do ponteiro? *ponteiro OU *(ponteiro+0) Como nós acessamos o segundo elemento do vetor? vetor[1] Como nós acessamos o segundo elemento do ponteiro? *(ponteiro+1) E por aí vai... Espero ter entendido, qualquer dúvida poste aí que vamos complementando... Ponteiro é meio complicado no início mas é muito importante para um programador experiente. Compartilhar este post Link para o post Compartilhar em outros sites