>> SPEAKER 1: On käynyt ilmi voimme onnistuneesti vaihtaa arvoja kahdessa
muuttujia viemällä ne toimiakseen eikä arvoa tai kopioida, mutta
viittaamalla tai niiden osoitteet.
Toisin sanoen, meidän täytyy hyödyntää jotain tunnetaan osoitin.
Osoitin, todella, on vain osoite joitakin muuttuja.
Joten jos tarjoamme toiminto nimeltään, vaikkapa vaihtaa osoitteen kanssa
muuttuja ja osoite toisen muuttuja, swap olisi valtuudet
mennä jokaiseen näistä osoitteista ja todella muuttaa
arvot, jotka ovat siellä.
>> Katsotaanpa tämän yhteydessä.
Katsotaanpa reimplement swap seuraavasti.
Ensimmäinen, nyt muuta ei olla int vaan olla osoitin int tai
osoite int.
Sitten Tehdään sama b, muuttuvat se int olla osoitin
int tai osoite int.
>> Sitten sisällä swap, katsotaanpa vielä julistaa TMP niin että meillä on
väliaikainen paikka arvoa.
Mutta arvo ei ole sinänsä, koska uudelleen, on nyt osoite
Joidenkin int.
Joten jos haluamme mennä kyseiseen osoitteeseen ja saada int kyseisessä osoitteessa, meillä on
dereference tämä osoitin, myös tapa tähden operaattori, kirjoittaa tähti.
>> Seuraava, en halua vaihtaa arvoa.
Haluan muuttaa arvoon , pitäen mielessä, jälleen,
että on osoite.
Niin tehdä niin, en enää tarvitse sanoa tähti saa.
Ja nyt haluan laittaa arvon se on b, ei-b: n arvo, joka
on myös osoite.
>> Joten sanon uudestaan, tähti b.
Sitten minun viimeinen, minun täytyy korvata mikä on osoitteessa b kanssa
mikä oli alkuperäinen sijainti.
Voit tehdä, että minä teen tähti b saa tmp.
>> Nyt lopussa päivä, tämä toiminto on edelleen vain
kolme riviä koodia.
Mutta koska se on manipuloimalla arvot Poiketen heidän osoitteensa eikä
raaka-arvot, jotka siirrettiin osaksi toiminto, Väitän, että swap on nyt
valtuudet muuttaa arvoja kulkeutuvat kautta niiden osoitteet.
>> Mutta minun täytyy tehdä yksi muutos vielä.
En voi enää kulkea x-ja y itse.
Minun täytyy kulkea osoitteet x-ja y.
Ja tehdä sitä, minä tarvitsen hieman eri merkintätapa ylös.
Haluan vaihtaa x ja y johtamalla vuonna osoite x, ilmaistaan
et-merkki x ja osoite y, ilmaistaan ​​ampersand y.
>> Samoin ylös nyt tarvitsen muuttaa funktion prototyyppi
vastaavat muutokset, jotka olen tehnyt, jotta on, jälleen, osoitin int.
b on, jälleen, osoitin int.
Ja nyt voin pelastaa minun arkistoida.
Ja antaa kääntää ja ajaa se.
>> Tee swap dot slash swap.
Ja tällä kertaa, x ja y ovat todellakin nyt vaihtoivat siten, että niiden arvot eivät ole
1 ja 2, mutta 2 ja 1.