Tagapagsalita 1: Ito ay lumiliko out na aming makakaya Matagumpay na magpalit ang mga halaga sa dalawang mga variable sa pamamagitan ng pagpasa ang mga ito sa isang function na hindi ayon sa halaga o sa pamamagitan ng kopya, ngunit sa pamamagitan ng reference o ayon sa kanilang mga address. Sa madaling salita, kailangan naming magamit isang bagay na kilala bilang isang pointer. Ang isang pointer, talaga, ay isa lamang ang address ng ilang mga variable. At kaya kung nagbibigay kami ng isang function na tinatawag na, sabihin nating, magpalit na may address ng isang variable at ang address ng isa pang variable, swap dapat empowered upang pumunta sa bawat isa sa mga address na iyon at talagang baguhin ang mga halaga na ang naroon. Ni makita ito sa konteksto Hayaan. Reimplement ni swap tulad ng sumusunod Hayaan. Una, ni baguhin ang isang hindi na maging isang int ipaalam ngunit upang maging isang pointer sa isang int o ang address ng isang int. Pagkatapos ay gawin ang pareho sa b, pagbabago ng ipaalam ito mula sa isang int upang maging tagaturo patungo sa isang int o ang address ng isang int. Pagkatapos ay sa loob ng magpalitan, sabihin pa rin Ipinahahayag tmp upang mayroon kami ng isang pansamantalang lugar para sa isang halaga ng. Ngunit isang ni halaga ay hindi mismo, dahil, muli, isang na ngayon ang address ng ilang int. Kaya kung gusto naming pumunta sa address na iyon at makakuha ng int sa address na iyon, mayroon kaming dereference ito pointer, sa pamamagitan din ng paraan ng ang star operator, pagsusulat ng isang bituin. Susunod, hindi ko nais upang baguhin ang halaga ng isang. Gusto kong baguhin ang halaga sa isang, isinasaisip, muli, na ang isang ay isang address. Kaya't upang gawin ito, muli Kailangan ko sasabihin bituin isang nakakakuha. At ngayon nais ko ang ilalagay sa halaga na sa b, hindi ang halaga ng b, na din ay isang address. Kaya muli sinasabi ko, star b. Pagkatapos, sa aking huling linya, kailangan kong patungan ng kung ano ang sa address na b may kung ano ang sa orihinal na lokasyon ng ng. Upang gawin iyon, gagawin ko star b nakakakuha tmp. Ngayon sa pagtatapos ng araw, ito function ay lamang pa rin tatlong linya ng code. Ngunit dahil ito ay pagmamanipula ng mga halaga sa paraan ng kanilang mga address at hindi ang raw na halaga na pumasa sa papunta sa function, inaangkin ko na swap ay ngayon empowered upang baguhin ang mga halaga na ang nakapasa sa pamamagitan ng kanilang mga address. Ngunit kailangan kong gumawa pa rin ng isang pagbabago. Hindi ko na pumasa sa x at y kanilang mga sarili. Kailangan ko upang pumasa sa mga address ng x at y. At upang gawin iyon, kailangan ko ng ilang bahagyang iba't ibang pagtatanda up tuktok. Gusto kong magpalit ng x at y sa pamamagitan ng pagpasa sa ang address ng x, na ipinapahiwatig ng ampersand x, at ang address ng y, na ipinapahiwatig ng ampersand y. Katulad nito, hanggang tuktok na ngayon ang kailangan kong baguhin ang prototype ang function na tumugma sa mga pagbabago na iyong ginawa ko, kaya na isang ay muli,, tagaturo patungo sa isang int. b ay muli,, tagaturo patungo sa isang int. At ngayon, maaaring mag-save ko ang aking file. At ni-recompile at patakbuhin ito ipaalam. Gumawa ng swap swap tuldok slash. At sa pagkakataong ito, x at y ay sa katunayan ngayon swapped tulad na ang kanilang mga halaga ay hindi 1 at 2, pero 2 at 1.