>> Sprecher 1: Es stellt sich heraus, wir können die Werte in zwei erfolgreich tauschen
Variablen, indem sie in eine funktionieren nicht nach Wert oder Kopie, sondern
Referenz oder als deren Adressen.
In anderen Worten, wir brauchen zu nutzen, etwas, als Zeiger bezeichnet.
Ein Zeiger, wirklich, ist nur die Adresse einer Variablen.
Und so, wenn wir eine Funktion mit dem Namen, sagen wir, tauschen mit der Adresse
eine Variable, und die Adresse eines anderen Variable sollte Swap ermächtigt,
gehen, um jede dieser Adressen und tatsächlich ändern
Werte, die es gibt.
>> Lassen Sie uns dies zu sehen im Kontext.
Lassen Sie uns erneut implementieren Swap wie folgt.
Zuerst ändern wir ein nicht vom Typ int sein sondern ein Zeiger auf eine int sein oder die
Adresse einer int.
Dann lassen Sie uns das gleiche für b, Umkleide es von einem int in einen Zeiger auf ein sein
int oder die Adresse einer int.
>> Dann innerhalb von Swap, lassen Sie uns noch tmp erklären, so dass wir ein
temporären Ort für einen Wert.
Aber ein Wert ist kein selbst, denn wieder, ist jetzt eine die Adresse
von rund int.
Also, wenn wir wollen an diese Adresse gehen und int bekommen an dieser Adresse, haben wir
dereferenzieren dieser Zeiger auch durch der Stern-Operator, Schreib Sterne ein.
>> Weiter weiß ich nicht ändern wollen der Wert von a.
Ich, um den Wert zu ändern ein, wenn man bedenkt, wieder,
daß ein eine Adresse.
Also, dies zu tun, muss ich wieder zu sagen, bekommt einen Stern.
Und jetzt möchte ich in den Wert setzen das ist bei b, nicht der Wert von b, die
Auch ist eine Adresse.
>> Also noch einmal sagen, dass ich, Stern b.
Da ist in meinem letzten Zeile, muss ich überschreiben, was auf dem b-Adresse mit
was auf eine ursprüngliche Lage.
Um das zu tun, ich tue Sterne bekommt b tmp.
>> Nun am Ende des Tages, diese Funktion ist immer noch nur
drei Codezeilen.
Aber weil es die Manipulation Werte durch ihre Adresse und nicht der
Roh-Werte, die in die übergeben wurden Funktion, ich behaupten, dass Swap ist jetzt
ermächtigt, die Werte zu ändern, dass werden über ihre Adressen weitergegeben.
>> Aber ich muss noch eine Änderung zu machen.
Ich kann nicht mehr passieren in x und y sich.
Ich muss in den Adressen weitergeben x und y.
Und um das zu tun, müssen einige leicht ich andere Schreibweise bis oben.
Ich möchte x und y durch Einleiten tauschen die Adresse x, angezeigt durch
Kaufmanns-x, und die Adresse des y, y von Et-Zeichen gekennzeichnet.
>> Ebenso bis oben jetzt muss ich ändern Prototyp der Funktion zu
entsprechen die Änderung, die ich gemacht habe, so dass a ist wiederum einen Zeiger auf ein Int.
b ist wieder ein Zeiger auf eine int.
Und jetzt kann ich meine Datei zu speichern.
Und lassen Sie uns neu kompilieren und ausführen.
>> Machen Swap dot Strich Swap.
Und diese Zeit ist, x und y sind zwar jetzt vertauscht, so dass ihre Werte sind nicht
1 und 2, 2 und 1, aber.