>> ПРЕДСЕДНИК 1: Испада можемо успешно мењате вредности у два
варијабле за доношење их у функционишу не по вредности или по примерку, али
позивањем или њихове адресе.
Другим речима, морамо да се искористи нешто познат као показивач.
Показивач, заправо, само адреса неке променљиве.
И тако, ако дајемо функцију која се зове, рецимо, замените са адресом
променљива и адреса другог променљива, замена би требало да буде овлашћен да
прелазак на сваки од тих адреса и заиста променити
Вредности које су тамо.
>> Да видимо то у контексту.
Хајде да реимплемент замену као што следи.
Прво, хајде да променимо не да буде инт али да буде показивач на инт или
адреса инт.
Онда хајде да урадимо исто за б, мењање она из инт да буде показивач
инт или адреса неког инт.
>> Тада унутар свап, хајде да и даље изјављујем тмп тако да имамо
привремено место за његова вредност.
Али је вредност није сама, јер, опет, сада је адреса
неког инт.
Дакле, ако желимо да идемо на ту адресу и добити инт на тој адреси, имамо
дереференце овог показивача, такође путем оператер звезда, писање звезду.
>> Даље, ја не желим да промените вредност.
Желим да промените вредност на , имајући у виду, опет,
да је адреса.
Тако да то уради, ја опет треба да кажем звезда добија.
А сада желим да ставим у вредности то је на б, не вредност б, која
Такође је адреса.
>> Дакле, опет кажем, стар Б.
Онда у мом последњем реду, морам да препише оно што је на адреси Б са
оно што је било на оригиналној локацији је.
Да би то урадио, ја радим звезда нар добија тмп.
>> Сада на крају дана, ова функција је и даље само
три линије кода.
Али зато што је манипулисање вредности путем њиховог адресу, а не
рав вредности које су пролазили у функција, ја тврдим да је сада своп
овлашћен да промените вредности које су прошли у преко њихове адресе.
>> Али морам да се још једну промену.
Ја више не могу проћи у Кс и И сами.
Треба да прође у адресама к и и.
И да се то уради, треба ми мало другачија нотација се врх.
Желим да замени Кс и И полагањем у адреса к, указује
амперсанд х, а адреса И, указује амперсанд и.
>> Слично томе, до врха сада ми је потребно да се променити прототип функцију да
одговара промену да сам направио, тако да је, опет, показивач на инт.
б, опет, показивач на инт.
И сад ја могу да сачувам датотеку.
И хајде да компајлирате и покренете га.
>> Направите своп тачка уписали косу замену.
И овај пут, Кс и И су заиста сада Мењали су да су њихове вредности нису
1 и 2, али 2 и 1.