SPEAKER 1: Selgub, saame edukalt vahetada väärtused kahe muutujad sooritades neid toimida mitte raha või kopeerida, kuid viidates või nende aadressid. Teisisõnu, peame me kasutama midagi tuntud osuti. Pointer, tõesti, on alles aadress mõned muutuja. Ja nii kui me pakume funktsioon nimega, ütleme, swap aadressiga muutuv ja aadress teise muutuja, swap tuleks anda volitused minge kõik need aadressid ja tegelikult muuta väärtused, mis on olemas. Vaatame seda konteksti. Olgem implementeerid swap järgmiselt. Esiteks muudame mitte olla int vaid olla pointer int või aadress int. Siis teeme sama b, muutes see int olevat kursorit int või aadress int. Siis sees swap, olgem ikka kuulutada tmp nii, et meil on ajutine koht väärtust. Aga väärtus ei ole iseenesest, sest jälle on nüüd aadress Mõnede int. Nii et kui me tahame minna sellele aadressile ja saada int sellele aadressile meil endid selle osuti, samuti teel star ettevõtja kirjalikult star. Järgmine, ma ei taha muuta väärtus. Tahan muuta väärtust , pidades silmas jällegi mis on aadress. Nii et seda ma veel vaja öelda täht muutub. Ja nüüd ma tahan panna raha see B, mitte väärtus b, mis Samuti on aadress. Nii et taas ma ütlen: täht b. Siis minu viimane rida, ma pean kirjutada, mis on aadressil b koos Mis oli algne asukoht. Selleks, et ma teen täht b saab tmp. Nüüd lõpuks päev, see funktsioon on ikka veel ainult kolm rida koodi. Aga kuna see on manipuleerimine väärtused teel oma aadressi ja mitte toores väärtused, mis olid vastu võetud, funktsioon, ma väita, et swap on nüüd volitus muuta väärtused on sooritanud kaudu nende aadressid. Aga mul on vaja teha üks muudatus veel. Ma ei saa enam läbima x ja y ise. Mul on vaja läbida aadressid x ja y. Ja seda, et ma vajan veidi eri märke üleval. Ma tahan, et vahetada x ja y läbides aadress x, tähistatud ampersand x ja aadress y, näitab ampersand y. Samamoodi üleval nüüd pean muuta funktsiooni prototüüp sobitada muutus, mis ma olen teinud, et on jällegi pointer int. b on taas viit int. Ja nüüd ma saan salvestada oma faili. Ja olgem kompileerida ja käivitada. Tee swap dot kaldkriipsuga swap. Ja seekord, x ja y on praegu tõepoolest vahetasin nii, et nende väärtused ei ole 1 ja 2, kuid 2 ja 1.