SPEAKER 1: Ukazuje sa, že môžeme úspešne zameniť hodnoty v dvoch premenné podľa ich odovzdávanie do Funkcia nie je hodnotou alebo kópiu, ale odkazom alebo ich adresy. Inými slovami, musíme využiť niečo, známy ako ukazovateľ. Ukazovateľ, naozaj, je len adresa nejaké premenné. A tak ak budeme poskytovať funkcie nazýva, povedzme, prehodiť s adresou variabilný a adresu iného variabilný, výmena by mala byť oprávnená prejsť na každý z týchto adries a skutočne zmeniť hodnoty, ktoré sú tam. Poďme sa pozrieť, to v kontexte. Poďme reimplement výmenu takto. Po prvé, poďme zmeniť nebyť int ale, že je ukazovateľ na int, alebo adresa int. Tak poďme urobiť to isté pre b, meniace sa to z int na ukazovateľ na int alebo adresa int. Potom sa vo vnútri swapu, poďme ešte Prehlasujem, tmp, takže máme dočasné miesto pre to hodnotu. Ale to nie je hodnota sama o sebe, pretože, Opäť platí, že je teraz adresa nejaké int. Takže ak chceme ísť na túto adresu a dostať int na tejto adrese, máme dereferencia tohto ukazovateľa, a to aj formou Prevádzkovateľ hviezda, písanie hviezda A. Ďalej, nechcem meniť hodnota. Chcem zmeniť hodnotu na , Majúc na pamäti, znova, , Že je adresa. Takže k tomu, ja zase potrebovať povedať, hviezda dostane. A teraz chcem, aby hodnoty že je v B, nie hodnota B, ktorá je tiež adresa. Takže znovu hovorím, hviezda b. Potom sa v mojom poslednom riadku, musím prepísať to, čo je na adrese b sa čo bolo na pôvodnom mieste je. Ak to chcete, že som to hviezda b dostane tmp. Teraz sa na konci dňa, to funkcia je stále len tri riadky kódu. Ale pretože je to manipulácia hodnoty prostredníctvom ich adresy a nie surovej hodnoty, ktoré boli odovzdané do funkcie, tvrdím, že swap je teraz právomoc zmeniť hodnoty, ktoré sú odovzdané v cez ich adresy. Ale musím urobiť jednu zmenu v pokoji. Už nemôžem odovzdať x a y sa. Musím prejsť v adresách x a y. A k tomu, že potrebujem nejaký mierne iný zápis až hore. Chcem vymeniť x a y odovzdaním v adresa x, čo je indikované ampersand x, a adresu y, čo je indikované ampersand y. Rovnako tak, až hore teraz potrebujem, aby zmeniť prototyp funkcie, aby zodpovedajú zmeny, ktoré som urobil, takže je opäť ukazovateľ na int. b je opäť ukazovateľ na int. A teraz môžem zachrániť svoju súbor. A poďme skompilujte a spustite ho. Uistite sa výmena bodka lomítko swapu. A tentoraz, x a y sú naozaj teraz vymeniť tak, aby ich hodnoty nie sú 1 a 2, ale 2 a 1.