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