>> ALTAVOZ 1: Resulta que podamos intercambiar con éxito los valores de dos
las variables de pasarlos en un funcionar, no por valor o por copia, pero
por referencia o por sus direcciones.
En otras palabras, tenemos que aprovechar algo conocido como un puntero.
Un puntero, en realidad, es sólo el dirección de una variable.
Y así, si proporcionamos una función llamada, por ejemplo, cambiar la dirección de
una variable y la dirección de otro variable de intercambio debe estar facultada para
ir a cada una de esas direcciones y, de hecho cambiar la
valores que están ahí.
>> Veamos esto en contexto.
Vamos a volver a implementar de intercambio como sigue.
En primer lugar, vamos a cambiar un no ser un int pero para ser un puntero a un int o el
dirección de un int.
Entonces vamos a hacer lo mismo para b, el cambio de desde un int que es un puntero a una
int o la dirección de un int.
>> Entonces dentro de swap, vamos todavía declarar tmp para que tengamos una
lugar temporal para un valor de.
Pero de un valor no es un sí, porque, de nuevo, a es ahora la dirección
de algunos int.
Así que si queremos ir a esa dirección y conseguir int en esa dirección, tenemos
eliminar la referencia de este puntero, también por medio de el operador de la estrella, estrella de una escritura.
>> Después, yo no quiero cambiar el valor de a.
Quiero cambiar el valor en una, teniendo en cuenta, de nuevo,
que una es una dirección.
Así que para hacerlo, yo necesito de nuevo decir una estrella consigue.
Y ahora quiero poner en el valor eso es en b, no el valor de b, que
También es una dirección.
>> Así que de nuevo os digo, estrella b.
Entonces, en mi última línea, tengo que sobreescribir lo que está en la dirección b con
lo que estaba en un lugar original.
Para hacer eso, lo hago estrellas b consigue tmp.
>> Ahora, al final del día, esta función sigue siendo sólo
tres líneas de código.
Pero debido a que es la manipulación de los valores por medio de su dirección y no la
valores brutos que se aprobaron en el función, afirmo que intercambio es ahora
facultado para modificar los valores que se pasan a través de sus direcciones.
>> Pero tengo que hacer un cambio aún.
Yo ya no puedo pasar en X e Y sí mismos.
Tengo que pasar en las direcciones de x e y.
Y para hacer eso, necesito un poco diferente cima notación arriba.
Quiero cambiar x e y pasándole la dirección de x, indicado por
signo x, y la dirección de Y, indicado por el signo y.
>> Del mismo modo, en lo alto ahora qué tengo que cambiar el prototipo de la función de
coincidir con el cambio que he hecho, por lo que a es, de nuevo, un puntero a un int.
b es, de nuevo, un puntero a un int.
Y ahora puedo guardar mi archivo.
Y vamos a volver a compilar y ejecutarlo.
>> Hacer intercambio slash dot swap.
Y esta vez, x e y son de hecho ahora intercambiado de manera que sus valores no son
1 y 2, pero 2 y 1.