SPEAKER 1: Ukazuje se, že můžeme úspěšně zaměnit hodnoty ve dvou proměnné podle jejich předávání do Funkce není hodnotou nebo kopii, ale odkazem nebo jejich adresy. Jinými slovy, musíme využít něco, známý jako ukazatel. Ukazatel, opravdu, je jen adresa nějaké proměnné. A tak pokud budeme poskytovat funkce nazývá, řekněme, prohodit s adresou variabilní a adresu jiného variabilní, výměna by měla být zmocněna přejít na každý z těchto adres a skutečně změnit hodnoty, které jsou tam. Pojďme se podívat, to v kontextu. Pojďme reimplement výměnu takto. Za prvé, pojďme změnit nebýt int ale, že je ukazatel na int, nebo adresa int. Tak pojďme udělat to samé pro b, měnící se to z int na ukazatel na int nebo adresa int. Pak se uvnitř swapu, pojďme ještě Prohlašuji, tmp, takže máme dočasné místo pro to hodnotu. Ale to není hodnota sama o sobě, protože, Opět platí, že je nyní adresa nějaké int. Takže pokud chceme jít na tuto adresu a dostat int na této adrese, máme dereference tohoto ukazatele, a to i formou Provozovatel hvězda, psaní hvězda A. Dále, nechci měnit hodnota. Chci změnit hodnotu na , majíce na paměti, znovu, , že je adresa. Takže k tomu, já zase potřebovat říci, hvězda dostane. A teď chci, aby hodnoty že je v B, nikoli hodnota B, která je také adresa. Takže znovu říkám, hvězda b.. Pak se v mém posledním řádku, musím přepsat to, co je na adrese b se co bylo na původním místě je. Chcete-li to, že jsem to hvězda b dostane tmp. Nyní se na konci dne, to funkce je stále jen tři řádky kódu. Ale protože je to manipulace hodnoty prostřednictvím jejich adresy a nikoli surové hodnoty, které byly předány do funkce, tvrdím, že swap je nyní pravomoc změnit hodnoty, které jsou předány v přes jejich adresy. Ale musím udělat jednu změnu v klidu. Už nemůžu předat x a y se. Musím projít v adresách x a y. A k tomu, že potřebuji nějaký mírně jiný zápis až nahoře. Chci vyměnit x a y předáním v adresa x, což je indikováno ampersand x, a adresu y, což je indikováno ampersand y. Stejně tak, až nahoře teď potřebuji, aby změnit prototyp funkce, aby odpovídají změny, které jsem udělal, takže je opět ukazatel na int. b je opět ukazatel na int. A teď můžu zachránit svou soubor. A pojďme zkompilujte a spusťte jej. Ujistěte se výměna tečka lomítko swapu. A tentokrát, x a y jsou opravdu nyní vyměnit tak, aby jejich hodnoty nejsou 1 a 2, ale 2 a 1.