COLUMNA 1: Acontece que pudermos intercambiar correctamente os valores en dous variables, pasando-os en un funcionar non por valor ou por copia, pero por referencia ou por seus enderezos. Noutras palabras, necesitamos alavancar algo coñecido como un punteiro. Un punteiro, en realidade, é só o enderezo de algunha variable. E por iso, se nós fornecen unha función chamada, digamos, intercambiar co enderezo do unha variable e o enderezo doutro variable, cambio deberá ter poderes para ir a cada un destes enderezos e, de feito, cambiar o valores que están alí. A ver isto no contexto. Imos reimplementar cambio do seguinte xeito. En primeiro lugar, imos cambiar a non ser un int pero para ser un punteiro para un int ou o enderezo dun int. Entón imos facer o mesmo para b, cambiando lo dun int para ser un punteiro a un int ou o enderezo dun int. Entón, dentro de intercambio, imos aínda declarar tmp para que teñamos unha lugar temporal para un valor de. Mais dun valor non é en si, xa que, de novo, un é agora o enderezo dalgúns int. Polo tanto, se queremos ir a este enderezo e obter int nese enderezo, temos desreferenciava este punteiro, tamén por medio de o operador estrela, escribindo unha estrela. Logo, eu non quero cambiar o valor dun. Quero cambiar o valor en un, tendo en conta, de novo, que é unha dirección. Entón, para facelo, eu teño de novo dicir unha estrela queda. E agora quero poñer no valor que está en b, e non o valor de b, que tamén é un enderezo. Entón unha vez digo, estrela b. Entón, na miña última liña, eu teño substituír o que está en dirección b con o que estaba en un lugar orixinal. Para iso, fago estrela b queda tmp. Agora, ao final do día, esta función aínda é só tres liñas de código. Pero por que é manipular valores por medio do seu enderezo e non o valores brutos que foron pasados ​​ao función, eu afirmo que intercambio é agora poderes para cambiar os valores que son pasados ​​a través dos seus enderezos. Pero eu teño que facer un cambio aínda. Eu non podo máis pasar en x e y si. Necesito pasar nos enderezos de x e y. E para facelo, eu teño un pouco diferente top notación arriba. Quero cambiar x e y pasando en o enderezo de x, indicada por ampersand x, eo enderezo y, indicará y comercial. Do mesmo xeito, encima agora que eu teño cambiar prototipo da función para coincidir co cambio que fixen, de xeito que a é, de novo, un punteiro para un int. b é, de novo, un punteiro para un int. E agora podo gardar o meu arquivo. E imos recompilar e executalo. Fai cambio barra intercambio de puntos. E este tempo, x e y son, de feito agora trocados co fin de que os seus valores non son 1 e 2, pero 2 e 1.