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.