Академический Документы
Профессиональный Документы
Культура Документы
A GENDA
QUE SO PONTEIROS ?
O nome de uma varivel indica o que est armazenada nela. O endereo de uma varivel um ponteiro.
PARA
QUE SERVEM ?
Fornecem maneiras com as quais as funes podem realmente modificar os argumentos que recebem.
Passar matrizes e strings mais convenientemente de uma funo para outra Manipular os elementos de matrizes mais facilmente.
P ONTEIROS
VARIVEIS
um tipo especial de varivel, usada para conter o endereo de outra varivel. Um ponteiro varivel armazena um endereo de memria Dizemos que uma varivel aponta para outra varivel quando a primeira contm o endereo da segunda. TipoDado *Identificador;
P ONTEIROS
VARIVEIS
Exemplo:
int *p,*t,i; p = &i; t = p;
E NDEREOS DE M EMRIA
O PERADOR
DE ENDEREOS
Para conhecer o endereo ocupado por uma varivel usamos o operador de endereos &. Associado a uma varivel ele representa o endereo da varivel. O resultado da operao um ponteiro constante.
O PERADOR &
#include<stdio.h> #include<stdlib.h> Int main(){ int i,j; printf(Endereo de i = %p\n,&i); printf(Endereo de j = %p\n,&j); system(PAUSE); return 0;
O PERADOR *
unrio e opera sobre um endereo ou ponteiro. Como resultado temos o nome da varivel localizada nesse endereo. Em outras palavras resulta o valor da varivel apontada.
O operador de endereos & opera sobre o nome de uma varivel e resulta o seu endereo, j o operador indireto * opera sobre o endereo de uma varivel e resulta o seu nome.
ATRIBUIO
DE
P ONTEIROS
ATRIBUIO
DE
P ONTEIROS
Operao de incremento
Se incrementarmos um ponteiro int * ele anda 4 bytes. Esse deslocamento depende do tipo do ponteiro.
Ento como fariamos para incrementar o contedo da varivel apontada por um ponteiro?
(*p)++
Como fazer para que uma funo retorne mais de um valor para a funo chamadora? Passos:
A funo chamadora passa os endereos das suas variveis usando o operador de endereos, A funo chamada dever criar variveis(ou usar as de entrada) para armazenar os endereos que estiver recebendo, enviados pela funo chamadora.
E XEMPLO
void reajuste( float *preco, float *v_reajuste){ * v_reajuste = *preco * 0.2;
E XEMPLO
int main( ){ float val_preco,val_reaj;
PASSAGEM
DE
VALORES
Passagem por Valor: a funo chamada no poder alterar diretamente uma varivel da funo chamadora. Passagem por Referncia: a funo chamadora poder alterar diretamente uma varivel da funo chamadora
O compilador transforma matrizes em ponteiros; O nome de uma matriz representa seu endereo da memria;
Exemplo 7 Exemplo 8