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