Você está na página 1de 5

Vetores

1. Introdução
2. Exemplo 1
3. Ponteiros e Vetores
4. Exemplo 2
1. Introdução

 A forma mais simples de estruturarmos um conjunto de dados é por


meio de vetores. Como a maioria das linguagens de programação, C
permite a definição de vetores.

int v[10];
A declaração acima diz que:

v é um vetor de inteiros dimensionado com 10 elementos. Cada int


ocupa 4 bytes, totalizando para a declaração acima 40 bytes.
Acesso aos elementos do vetor ?
v[0] – acessa o 1º elemento de v
0
v[1] – acessa o 2º elemento de v


v[9] – acessa o 10º elemento de n-1
v
v[10] Invasão de memória
2. Exemplo 1
Determinação da média e da variância de um conjunto de 10 elementos
fornecidos via teclado.

V[i] representa o (i+1)-ésimo elemento do vetor, &v[i] representa o


endereço da memória onde esse elemento está armazenado.
3. Ponteiros e Vetores
 Na verdade, existe uma associação forte entre vetores e ponteiros, pois
se existe a declaração:
int v[10]
a variável v, que representa o vetor, é uma constante que armazena o
endereço inicial do vetor, isto é, sem indexação, aponta para o primeiro
elemento do vetor.

A linguagem C também suporta aritmética de ponteiros. Podemos somar e subtrair ponteiros, desde
que o valor do ponteiro resultante aponte para dentro da área reservada para o vetor. Com isso,
num vetor temos as seguintes equivalências:

v+0 – aponta para o primeiro elemento do vetor;


v+1 – aponta para o segundo elemento do vetor;  &v[i] = (v+i)
…  v[i] = *(v+i)
v+9 – aponta para o último elemento do vetor;
Os vetores também podem ser inicializados na declaração:

int v[5] = {5, 10, 15, 20, 25} ou int v[ ] = {5, 10, 15, 20, 25}
4. Exemplo 2
 Passar um vetor para uma função consiste em passar o endereço da
primeira posição do vetor. Se passarmos um valor de endereço, a função
chamada deve ter um parâmetro do tipo ponteiro para armazenar este
valor.
Vetores e Alocação Dinâmica, W. Celes e J. L. Rangel

Passar para uma função um vetor de int, significa ter um parâmetro do tipo int*, capaz de
armazenar endereços de inteiros. Os elementos do vetor não são copiados para a função, o
argumento copiado é apenas o endereço do primeiro elemento.

Como é passado para a função o


endereço do primeiro elemento do
vetor, podemos alterar os valores dos
elementos do vetor dentro da função

Você também pode gostar