Escolar Documentos
Profissional Documentos
Cultura Documentos
Ponteiro em C: Arrays
Por Fernando Deluno Garcia - 16/12/2015
Este post faz parte da série Ponteiro em C. Leia também os outros posts da série:
Ponteiro em C: Resumo
Ponteiro em C: De nição
Ponteiro em C: Aritmética de ponteiro
Ponteiro em C: Arrays
Ponteiro em C: Funções
Ponteiro em C: Estruturas
Ponteiro em C: Alocação Dinâmica de Memória
Ponteiro em C: Tipo de Dado Abstrato
Ponteiro em C: Polimor smo
Ponteiros e Arrays
https://www.embarcados.com.br/ponteiro-em-c-arrays/#Array-de-Ponteiros 1/7
04/04/2019 Aprenda sobre Arrays - Série Ponteiro em C - Embarcados
1 int v[] = {5, 10, 15, 3, 10, 76, 5, 13, 33, 45};
2 int * pt;
3
4 pt = v; //atribui o endereço do vetor
Para obter o endereço de outro índice é necessário utilizar o operador ‘&’. Portanto,
as duas atribuições mostradas abaixo são equivalentes.
1 pt = v;
2 pt = &v[0];
1 pt = &v[4];
Diante disso, veri ca-se que o elemento de um vetor é armazenado numa posição de
memória na qual o seu endereço é equivalente à soma do endereço base com o
https://www.embarcados.com.br/ponteiro-em-c-arrays/#Array-de-Ponteiros 2/7
04/04/2019 Aprenda sobre Arrays - Série Ponteiro em C - Embarcados
total de bytes dos elementos até a posição desejada. Dito de outra maneira, se pt
aponta para o endereço base do vetor então ‘V[n]’ é equivalente ‘*(pt + n)’. Na gura 3
é ilustrado essa alteração do endereço apontado.
1 int v[] = {5, 10, 15, 3, 10, 76, 5, 13, 33, 45};
2 int * pt;
3 int i;
4
5 pt = v;
6
7 for(i = 0; i < 10; i++)
8 {
9 printf("V[%i] = %i\r\n", i, *(pt + i));
10 }
1 int v[] = {5, 10, 15, 3, 10, 76, 5, 13, 33, 45};
2 int * pt;
3 int i;
4
5 pt = v;
6
7 for(i = 0; i < 10; i++)
8 {
9 printf("V[%i] = %i\r\n", i, *pt++);
10 }
Neste exemplo, dois ponteiros são utilizados numa operação de atribuição. O código
assembly gerado (AVR 8 bits) para este código é mostrado abaixo.
https://www.embarcados.com.br/ponteiro-em-c-arrays/#Array-de-Ponteiros 3/7
04/04/2019 Aprenda sobre Arrays - Série Ponteiro em C - Embarcados
2 ST X+,R16 ; Store data and post increment
De modo geral:
Array de Ponteiros
Agora, é necessário lembrar que ao acessar os elementos pt[0], pt[1], pt[2] e pt[3],
estaremos manipulando ponteiros. Para acessar os elementos de cada vetor a partir
https://www.embarcados.com.br/ponteiro-em-c-arrays/#Array-de-Ponteiros 4/7
04/04/2019 Aprenda sobre Arrays - Série Ponteiro em C - Embarcados
dos ponteiros basta utilizar o operador ‘*’ e indicar o índice desejado. Considere os
casos abaixo:
*(*(pt+0)) é o valor 1;
*(*(pt+1)) é o valor 4;
*(*(pt+2)) é o valor 7;
*(*(pt+3)) é o valor 10.
Conclusão
Nesse artigo foi demonstrado como acessar arrays utilizando ponteiros. Essa é uma
técnica muito utilizada, pois é um meio mais rápido de acessar os elementos
quando comparada com a indexação direta do vetor. Assim como no artigo anterior,
destacou-se a importância do tipo de dado do ponteiro, já que as operações
aritméticas realizadas dependem dessa informação. Outro caso demonstrado foi o
de um array de ponteiros, caso semelhante ao de declaração de uma matriz de
strings. Essas características podem aumentar a e ciência de rotinas e permitem
estruturar melhor o código.
https://www.embarcados.com.br/ponteiro-em-c-arrays/#Array-de-Ponteiros 5/7
04/04/2019 Aprenda sobre Arrays - Série Ponteiro em C - Embarcados
Referências
Este post faz da série Ponteiro em C. Leia também os outros posts da série:
Ponteiro em C: Resumo
Ponteiro em C: De nição
Ponteiro em C: Aritmética de ponteiro
Ponteiro em C: Arrays
Ponteiro em C: Funções
Ponteiro em C: Estruturas
u
Ponteiro em C: Alocação Dinâmica de Memória
Ponteiro em C: Tipo de Dado Abstrato
Ponteiro em C: Polimor smo
NEWSLETTER
Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas,
tutoriais e promoções.
CADASTRAR E-MAIL
Esta obra está licenciada com uma Licença Creative Commons Atribuição-
CompartilhaIgual 4.0 Internacional .
https://www.embarcados.com.br/ponteiro-em-c-arrays/#Array-de-Ponteiros 6/7
04/04/2019 Aprenda sobre Arrays - Série Ponteiro em C - Embarcados
Este site utiliza cookies. Ao usá-lo você concorda com nossos Termos de Uso.
Continuar
Saiba mais.
https://www.embarcados.com.br/ponteiro-em-c-arrays/#Array-de-Ponteiros 7/7