Funções
Ponteiro: o endereço da casa
Deixar uma função mexer na sua variável de verdade.
Na vida real
Se você manda uma foto da sua casa pro pintor, ele pinta a foto e sua casa continua igual. Se manda o endereço, ele vai lá e pinta a casa de verdade. Normalmente o C manda a foto (uma cópia). Com & você manda o endereço, e com * a função entra na casa.
Código
void troca(int *a, int *b) { int aux = *a; *a = *b; *b = aux;} int main() { int x = 1, y = 2; troca(&x, &y); printf("%d %d", x, y);}passo 1 de 7
Também dá pra usar as setas ← e → do teclado.
O que o computador está vendo
Caixas (variáveis)
1x
2y
Tela
x vale 1 e y vale 2.
Peça por peça
| Peça | O que significa |
|---|---|
| &x | Na CHAMADA: manda o endereço de x. |
| int *a | Na FUNÇÃO: a é uma caixa que guarda um endereço. |
| *a | No USO: entra no endereço e mexe no valor que está lá. |
| aux | O copo vazio. Pra trocar suco e água de copo você precisa de um terceiro. |
| vetor | Exceção: vetor já vai como endereço. int v[] na função funciona sem & e sem *. |
Teste rápido: Na chamada troca(?x, ?y), o que vai no lugar do ?