funções passagem por valor e por referência passo a passo
TRANSCRIPT
![Page 1: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/1.jpg)
Funções
Passagem por valor e por referênciapasso a passo
![Page 2: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/2.jpg)
Funções
Esta apresentação visa exemplificar casos de chamadas de funções com passagem por valor e por referência.
A passagem por valor copia um valor para uma variável em outra função.
A passagem por referência recebe um ponteiro, ou seja, um endereço de memória.
Código dessa apresentação: http://dl.dropbox.com/u/3466878/codigosMonitoria/referencia.c
![Page 3: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/3.jpg)
Legenda A tabela representa a memória, e possui linhas e
colunas. Por simplificação, cada “informação” aparece ali com
o mesmo tamanho (ocupam, sempre, 1 quadrado só). Na realidade, cada tipo de dado ocupa uma quantidade
diferente de bytes (por exemplo, int tem tamanho 4 (bytes), char tem 1, ponteiros têm 4).
Um endereço é da forma <linha><coluna>. Ex:
05 = linha 0, coluna 5 203 = linha 20, coluna 3
![Page 4: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/4.jpg)
Legenda
![Page 5: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/5.jpg)
Legenda
A cada passo, as mudanças na memória relevantes estão destacadas, com cores diferentes (em geral, ficam em vermelho e com o mouse em cima, exceto para a última função, cuja cor é vermelha e as letras ficam brancas quando mudam).
Os printf's usam as variáveis no estado em que estão na figura.
![Page 6: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/6.jpg)
![Page 7: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/7.jpg)
![Page 8: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/8.jpg)
![Page 9: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/9.jpg)
![Page 10: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/10.jpg)
![Page 11: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/11.jpg)
![Page 12: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/12.jpg)
![Page 13: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/13.jpg)
![Page 14: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/14.jpg)
![Page 15: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/15.jpg)
![Page 16: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/16.jpg)
![Page 17: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/17.jpg)
![Page 18: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/18.jpg)
![Page 19: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/19.jpg)
![Page 20: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/20.jpg)
![Page 21: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/21.jpg)
![Page 22: Funções Passagem por valor e por referência passo a passo](https://reader036.vdocuments.pub/reader036/viewer/2022070508/5706386f1a28abb823906e01/html5/thumbnails/22.jpg)
Observações
Note que as variáveis ponteiros não mudam seu próprio valor nas funções (ou seja, apontam sempre para a mesma posição de memória).
As posições apontadas por ela, no entando, mudam quando utiliza-se o asterisco Ex: (*variavel) = 3;