COS-121

Estrutura de Dados e Algoritmos

2 Semestre de 2014

Professor Ricardo Farias


Aula 03


Topicos desta aula.

Linguagem C

Passagem de parametros para funcao:

Ponteiro para um vetor
int vet[5]; // Define um vetor com 5 elementos
int *p; // Define ponteiro para variavel int
p = &vet[0]; // Coloca o endereco do primeiro elemento do vetor em p
p = vet; // Outra forma de colocar o endereco do primeiro elemento do vetor em p

// Operacoes aritmeticas com o ponteiro
p++; // Posiciona o ponteiro no proximo elemento do vetor
p += 2; // Posiciona o ponteiro no elemento que esta duas posicoes apos ao elemento apontado pelo vetor
p--; // Posiciona o ponteiro no elemento anterior

#include 

void main() {

       int vet[5]={5,8,10,15,25}, *p;

       p = vet;

       printf( "%d\n", *p ); // mostra o valor 5
       p +=2;
       printf( "%d\n", *p ); // mostra o valor 10
       p--;
       printf( "%d\n", *p ); // mostra o valor 8


}



Obs:
int *p1, *p2, x;
float *p3;
p1 = &x; // p1 aponta para x
p2 = p1; // p2 aponta para x
p3 = p1; // ERRO - tipos de dados diferentes
p3 = &x; // ERRO - tipos de dados diferentes


Pode-se acessar o vetor usando ponteiro e indice
#include 

void main() {

       int vet[5]={5,8,10,15,25}, *p;

       p = vet;

       printf( "%d\n", p[0] ); // mostra o valor 5
       printf( "%d\n", p[2] ); // mostra o valor 10

       // CUIDADO
       p++;
       printf( "%d\n", p[0] ); // mostra o valor 8
       printf( "%d\n", p[2] ); // mostra o valor 15


}


Obs:
O indice no ponteiro ira coincidir com o do vetor, se o ponteiro estiver apontando para o primeiro elemento do vetor.
O indice no ponteiro indica a posicao relativa do elemento em relacao ao ponteiro.
p[0] eh o elemento apontado pelo ponteiro p, p[2] eh o elemento que esta a duas posicoes apos o elemento apontado pelo ponteiro.