GARSIAKALBIS 1: Pasirodo, mes galime sėkmingai sukeisti vertybes dviejų kintamuosius rodiklius perduoti juos į veikti ne pagal vertę, arba kopija, bet nurodant, ar jų adresus. Kitaip tariant, mums reikia išnaudoti kažkas žinomas kaip žymeklį. Žymeklis, tikrai, yra tik adresas tikrą kintamąjį. Ir todėl, jei mes teikiame funkcija vadinama, tarkim, apsikeitimo su adresu kintamojo ir kito adresas kintamasis, mainai turėtų būti suteikti įgaliojimai eiti į kiekvieną iš šių adresų ir iš tiesų pakeisti vertybės, kurios yra ten. Pažiūrėkime šį kontekstą. Leiskite reimplement apsikeitimo taip. Pirma, galime pakeisti ne būti int tačiau turi būti rodyklė į int arba adresas int. Tada darykime patį b, keičiant ji iš int būti rodyklė į int ar iš int adresą. Tada viduje apsikeitimo, tegul dar paskelbti tmp, kad mes turime laikina vieta už vertę. Bet vertė yra ne pati, nes, vėl dabar adresas kai kurių int. Taigi, jei norime eiti tuo adresu ir gauti int tuo adresu, mes turime dereference šio rodyklė, taip pat taikant žvaigždučių operatorius raštu žvaigždute. Be to, aš nenoriu keisti iš vertė. Noriu pakeisti vertę , atsižvelgiant į tai, dar kartą, kad yra adresas. Taigi, norint tai padaryti, aš vėl reikia pasakyti žvaigždė pasireiškia. Ir dabar aš noriu įdėti į vertę tai ne b, o ne b vertei, kuri Taip pat yra adresas. Taigi dar kartą sakau, žvaigždės b. Tada mano paskutinės eilutės, man reikia perrašyti kas yra adresu b su kas buvo pradinę vietą. Norėdami tai padaryti, aš žvaigždė b gauna tmp. Dabar bent dienos pabaigoje, tai funkcija yra dar tik tris eilutes kodo. Bet kadangi tai manipuliuoti vertybes būdu savo adresą, o ne žaliavos vertybės, kurios buvo perduodamos į funkcija, galiu reikalauti, kad apsikeitimo dabar įgaliota pakeisti vertybes, yra priimtas per jų adresus. Bet man reikia padaryti vieną pakeitimą dar. Aš jau negaliu praeiti x ir y save. Man reikia praeiti adresais x ir y. Ir tai padaryti, man reikia šiek tiek kitoks žymėjimas iki viršaus. Noriu apsikeitimo x ir y, einančios per X adresą, žymimą Ženklas X, ir adresas y nurodyta ampersand y. Be to, iki viršaus dabar turiu pakeisti funkcijos prototipas suderinti pakeitimus, kad aš padaręs, kad , vėlgi, rodyklė į int. b yra, vėlgi, rodyklė į int. Ir dabar aš galiu išsaugoti savo failą. Ir tegul perkompiliuoti ir paleisti jį. Padaryti apsikeitimo taškas velniop apsikeitimo. Ir šį kartą, x ir y yra iš tiesų dabar pavertė tokia, kad jų vertės yra ne 1 ir 2, o 2 ir 1.