ZVUČNIK 1: Ispada možemo uspješno zamijeniti vrijednosti u dva varijable tako da ih se pusti u funkcionirati ne po vrijednosti ili po primjerku, ali pozivanjem ili njihove adrese. Drugim riječima, moramo iskoristiti nešto poznat kao pokazivač. Pointer, zapravo, samo adresu neke varijable. I tako, ako ćemo osigurati funkciju zove, recimo, zamijeniti s adresom promjenjiva i adresu drugog promjenjiva, zamjena bi trebao biti ovlašten Na svakom od tih adresa i zapravo promijeniti Vrijednosti koje su tamo. Pogledajmo to u kontekstu. Idemo reimplement zamjenu na sljedeći način. Prvo, neka je promijeniti ne biti int , ali da se kazaljka na int ili adresa int. Onda ćemo napraviti isto za B, mijenjanje to od int biti pokazivač int ili adresu int. Zatim unutar swapa, neka je i dalje izjavljujem tmp tako da imamo privremeno mjesto za vrijednost. Ali je vrijednost nije sama po sebi, jer je, opet, sada je adresa neke int. Dakle, ako želimo ići na tu adresu i dobili int na toj adresi, imamo dereference ovog pokazivača, također putem Operater zvijezda, pisanje zvijezda a.. Dalje, ja ne želim mijenjati vrijednost. Želim promijeniti vrijednost na , imajući u vidu, opet, da je adresa. Tako da to učini, opet je potrebno reći zvijezda dobiva. A sada želim staviti u vrijednosti to je na B, ne vrijednost b, koji također je adresa. Dakle, opet kažem, zvijezda b.. Tada je u mojoj posljednjoj liniji, moram prebrisati ono što je na adresu s b ono što je u izvornom mjestu. Da biste to postigli, ja zvijezda b dobiva tmp. Sada je na kraju dan, ovaj Funkcija je još uvijek samo tri linije koda. Ali zato što je manipuliranja vrijednosti putem njihove adrese i ne sirovo vrijednosti koje su prošli u funkcija, ja tvrdim da swap je sad ovlašten da promijenite vrijednosti koje su doneseni u preko njihove adrese. No, moram napraviti jednu promjenu dalje. Ja više ne mogu proći u X i Y se. Moram proći u adrese x i y. A za to, trebam neki malo drugačije oznake do vrha. Želim da zamijene xiy propuštanjem adresa X, označeno znak za struju x, i adresu godina, pokazuje Ampersand y. Isto tako, do vrha sada trebam promijeniti funkciju je prototip za odgovaraju promjene koje sam napravio, tako da je, opet, pokazivač na int. b je, opet, pokazivač na int. I sada mogu spasiti moj dosje. I neka je kompilirati i pokrenuti ga. Provjerite Swap dot kose crte swap. I ovaj put, xiy su doista sada Zamijenio kao da su njihove vrijednosti nisu 1 i 2, ali i 2 1.