Funções
Passagem por valor e por referênciapasso a passo
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
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
Legenda
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.
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;