>> Выступоўца 1: Аказваецца, мы можам паспяхова памяняць значэння ў двух
зменныя шляхам перадачы іх у функцыянаваць не па значэнні або па копіі, але
па спасылцы або па іх адрасах.
Іншымі словамі, мы павінны выкарыстоўваць нешта вядома як паказальнік.
Паказальнік, сапраўды, гэта толькі адрас некаторай зменнай.
І таму, калі мы прадстаўляем функцыю з імем, скажам, памяняць з адрасам
пераменная а таксама адрас іншы зменная, своп павінен быць ўпаўнаважаны
ісці да кожнага з гэтых адрасоў а на самай справе змяніць
значэнні, якія існуюць.
>> Давайце разгледзім гэта ў кантэксце.
Давайце перавызначыць своп наступным чынам.
Па-першае, давайце зменім ня быць унутр але быць паказальнікам на міжнар або
адрас у міжнар.
Тады давайце зробім тое ж самае для B, змяняючы гэта ад міжнар быць паказальнікам на
Int або адрас у міжнар.
>> Тады ўнутры свопу, давайце яшчэ абвясціць TMP так што мы маем
часовае месца для значэння х гадоў.
Але'S значэнне не з'яўляецца сам па сабе, так, Зноў жа, у цяперашні час з'яўляецца адрас
некаторага міжнар.
Так што, калі мы хочам ісці па гэтым адрасе і атрымаць Int па гэтым адрасе, у нас ёсць
разыменовать гэтага паказальніка, і шляхам зорка аператар, пісаць зорцы.
>> Далей, я не хачу, каб змяніць значэнне.
Я хачу, каб змяніць значэнне на , Маючы на ​​ўвазе, зноў жа,
што гэта адрас.
Такім чынам, каб зрабіць гэта, я зноў трэба сказаць зорка атрымлівае.
А цяпер я хачу, каб пакласці ў кошту вось на б, не ад значэння Ь, якія
таксама з'яўляецца адрасам.
>> Такім чынам, яшчэ раз кажу, начлег.
Тады ў сваёй апошняй радку, мне трэба перапісаць тое, што па адрасе б з
тое, што было ў арыгінальным размяшчэнні ст.
Каб зрабіць гэта, я зорка б атрымлівае TMP.
>> Зараз у канцы дня, гэта функцыя па-ранейшаму проста
тры радкі кода.
Але таму што гэта маніпуляванне значэнні шляхам іх адрас, а ня
сырыя значэнні, якія былі перададзеныя ў Функцыя, я сцвярджаю, што своп цяпер
ўпаўнаважаны змяняць значэння, якія перадаюцца ў праз іх адрасы.
>> Але мне трэба зрабіць адно змяненне ўсё яшчэ.
Я больш не можа прайсці ў х і ў саміх сябе.
Мне трэба прайсці ў адрасах х і у.
А для гэтага, мне трэба некаторыя трохі іншыя абазначэнні наверсе.
Я хачу, каб памяняць х і у, перадаючы адрас х, пазначаецца
Ампэрсанд х, а таксама адрас у, пазначаецца Ампэрсанд у.
>> Сапраўды гэтак жа, наверсе цяпер мне трэба змяніць прататып функцыі, каб
адпавядаць змены, якія я зрабіў, так што , Зноў жа, гэта паказальнік на міжнар.
б, зноў жа, гэта паказальнік на міжнар.
І цяпер я магу выратаваць мой файл.
І давайце перакампіляваць і запусціць яго.
>> Зрабіць своп кропка слэш своп.
І на гэты раз, х і ў сапраўды зараз месцамі так, што іх значэння не
1 і 2, але 2 і 1.