Pular para o conteúdo

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çaO que significa
&xNa CHAMADA: manda o endereço de x.
int *aNa FUNÇÃO: a é uma caixa que guarda um endereço.
*aNo USO: entra no endereço e mexe no valor que está lá.
auxO copo vazio. Pra trocar suco e água de copo você precisa de um terceiro.
vetorExceçã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 ?