Você está na página 1de 1

8.

4 Ponteiros, endereos e funes


Porque usar ponteiros? A primeira vantagem da utilizao de ponteiros em programas talvez
esteja relacionada a sua utilizao como argumentos de funes.

8.4.1

Passagem de dados por valor ou por referencia

No captulo 6 (seo 6.5) afirma-se que o valor de uma varivel var de uma funo fun_1()
passada para uma outra funo fun_2() no podem ser alterado pela funo fun_2(). De fato, isto
verdade se passamos o valor da varivel var para a funo fun_2(). Mas o valor de var pode ser
alterado por fun_2() passamos seu endereo.
No primeiro caso, dizemos que a passagem de dados de uma funo para outra ocorreu por valor.
No segundo caso, dizemos que houve uma passagem por referncia. Vejamos em detalhe uma definio
destes tipos de passagem de dados entre funes:
Passagem por Valor: A passagem por valor significa que passamos de uma funo para outra o
valor de uma varivel, isto , a funo chamada recebe um cpia do valor da varivel. Assim qualquer
alterao deste valor, pela funo chamada, ser uma alterao de uma cpia do valor da varivel. O valor
original na funo chamadora no alterado pois o valor original e copia ficam em blocos de memria
diferentes.
Passagem por Referencia: A passagem por referencia significa que passamos de uma funo
para outra o endereo de uma varivel, isto , a funo chamada recebe sua localizao na memria
atravs de um ponteiro. Assim qualquer alterao no contedo apontado pelo do ponteiro ser uma
alterao no contedo da varivel original. O valor original alterado.
Sintaxe: A sintaxe da passagem de endereo a seguinte:
na funo chamada:
tipof nomef(tipop nomep){
...
onde:
tipof o tipo de retorno da funo.
87