>> 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.