SPEAKER 1: Det viser seg at vi kan hell Bytte verdiene i to variabler ved å sende dem inn i en fungere ikke av verdi eller ved å kopiere, men ved henvisning, eller ved deres adresser. Med andre ord, vi må utnytte noe som er kjent som en peker. En peker, egentlig, er bare adressen til noen variable. Og så hvis vi gir en funksjon som heter, si, bytte med adressen en variabel og adressen til en annen variabel, bør swap gis myndighet til går til hver av disse adresser og faktisk endre verdier som er der. La oss se dette i sammenheng. La oss reimplement swap som følger. Først, la oss endre en ikke å være en int men for å være en peker til en int eller adressen til en int. Så la oss gjøre det samme for b, skiftende det fra en int for å være en peker til en int eller adressen til en int. Deretter innsiden av swap, la oss fortsatt erklære tmp slik at vi har en midlertidig sted for en verdi. Men en verdi er ikke en selv, fordi, igjen, er et nå adressen av noen int. Så hvis vi ønsker å gå til denne adressen og få int på denne adressen, har vi deferanseoperasjon denne pekeren, også i form av stjernen operatør, skriver stjerne en. Neste, jeg ønsker ikke å endre verdien av en. Jeg ønsker å endre verdien på en, husk, igjen, at en er en adresse. Så for å gjøre det, jeg igjen trenger å si stjerne en blir. Og nå ønsker jeg å sette i verdi det er ved b, ikke verdien av b, som er også en adresse. Så igjen sier jeg, stjerne b. Så i min siste linje, trenger jeg å overskrive hva som står på adresse b med hva som sto på en opprinnelige plassering. For å gjøre det, jeg gjør stjerne b får tmp. Nå ved slutten av dagen, denne Funksjonen er fortsatt bare tre linjer med kode. Men fordi det er å manipulere verdier ved hjelp av sin adresse og ikke den rå-verdier som var gått inn i det funksjon, jeg hevder at swap er nå myndighet til å endre verdiene som sendes inn via deres adresser. Men jeg trenger å gjøre én endring fortsatt. Jeg kan ikke lenger passere i x-og y selv. Jeg trenger å passere i adresser av x og y. Og for å gjøre det, trenger jeg noen litt forskjellig notasjon opp toppen. Jeg ønsker å bytte x og y ved å passere i adressen til x, angitt med ampersand x, og adressen til y, angitt med tegnet y. Tilsvarende opp topp nå må jeg endre funksjonen prototype til matche den endringen som jeg har gjort, slik at en er, igjen, en peker til en int. b er, igjen, en peker til en int. Og nå kan jeg lagre filen. Og la oss rekompilere og kjøre den. Gjør swap dot slash swap. Og denne gangen, x og y er faktisk nå byttet slik at deres verdier ikke 1 og 2, men 2 og en.