>> ALTAVEU 1: Resulta que puguem intercanviar amb èxit els valors de dues
les variables d'passar en un funcionar, no per valor o per còpia, però
per referència o per les seves direccions.
En altres paraules, hem d'aprofitar alguna cosa conegut com un punter.
Un punter, en realitat, és només el direcció d'una variable.
I així, si proporcionem una funció anomenada, per exemple, canviar l'adreça de
una variable i la direcció d'un altre variable d'intercanvi ha d'estar facultada per
anar a cadascuna d'aquestes adreces i, de fet canviar la
valors que hi són.
>> Vegem això en context.
Anem a tornar a implementar d'intercanvi com segueix.
En primer lloc, anem a canviar un no ser un int però per ser un punter a un int o el
direcció d'un int.
Llavors farem el mateix per b, el canvi de des d'un int que és un punter a una
int o la direcció d'un int.
>> Llavors dins de swap, anem encara declarar tmp perquè tinguem una
lloc temporal per un valor de.
Però d'un valor no és un sí, perquè, de nou, a és ara la direcció
d'alguns int.
Així que si volem anar a aquesta direcció i aconseguir int en aquesta direcció, tenim
eliminar la referència d'aquest punter, també per mitjà de l'operador de l'estrella, estrella d'una escriptura.
>> Després, jo no vull canviar el valor de a.
Vull canviar el valor en 1, tenint en compte, de nou,
que una és una direcció.
Així que per fer-ho, jo necessito un altre cop dir una estrella aconsegueix.
I ara vull posar en el valor això és en b, no el valor de b, que
També és una direcció.
>> Així que de nou us dic, estel b.
Llavors, en la meva última línia, he de sobreescriure el que està en la direcció b amb
el que estava en un lloc original.
Per fer això, ho faig estrelles b aconsegueix tmp.
>> Ara, al final del dia, aquesta funció segueix sent només
tres línies de codi.
Però pel fet que és la manipulació dels valors per mitjà de la seva direcció i no la
valors bruts que es van aprovar en el funció, afirmo que intercanvi és ara
facultat per modificar els valors que es passen a través de les seves direccions.
>> Però he de fer un canvi encara.
Jo ja no puc passar a X i Y si mateixos.
He de passar a les adreces de x i y.
I per fer això, necessito una mica diferent cim notació dalt.
Vull canviar x i y passant-li la direcció de x, indicat per
signe x, i la direcció de I, indicat pel signe i.
>> De la mateixa manera, a la part alta ara què he de canviar el prototip de la funció de
coincidir amb el canvi que he fet, pel que a és, de nou, un punter a un int.
b és, de nou, un punter a un int.
I ara puc guardar el meu arxiu.
I anem a tornar a compilar i executar-lo.
>> Fer intercanvi slash dot swap.
I aquesta vegada, x i y són de fet ara intercanviat de manera que els seus valors no són
1 i 2, però 2 i 1.