ponteiro
Uma variável que guarda o endereço de outra variável.
int *p; declara um ponteiro pra inteiro. Ele não guarda um número comum, guarda o de onde um número está.
O & na frente de uma dá o endereço dela. O * na frente de um ponteiro dá o VALOR que está naquele endereço.
É assim que uma consegue mudar uma variável de fora: ela recebe o endereço e escreve lá dentro. A função é o exemplo clássico.
exemplo.cclique numa linha pra entender ela