>> Виступаючий 1: Виявляється, ми можемо успішно поміняти значення в двох
змінні шляхом передачі їх в функціонувати не за значенням чи за копії, але
за посиланням або за їх адресами.
Іншими словами, ми повинні використовувати щось відомо як покажчик.
Покажчик, дійсно, це тільки адреса деякої змінної.
І тому, якщо ми надаємо функцію з ім'ям, скажімо, поміняти з адресою
змінна а також адресу іншої змінна, своп повинен бути уповноважений
йти до кожного з цих адрес а насправді змінити
значення, які існують.
>> Давайте розглянемо це в контексті.
Давайте перевизначити своп таким чином.
По-перше, давайте змінимо же не бути внутр але бути дороговказом на междунар або
адресу в міжнар.
Тоді давайте зробимо те ж саме для B, змінюючи це від междунар бути дороговказом на
Int або адресу в міжнар.
>> Тоді всередині свопу, давайте ще оголосити TMP так що ми маємо
тимчасове місце для значення х років.
Але'S значення не є сам по собі, так, Знову ж, в даний час є адреса
деякого міжнар.
Так що, якщо ми хочемо йти за цією адресою і отримати Int за цією адресою, у нас є
разименовать цього покажчика, і шляхом зірка оператор, писати зірці.
>> Далі, я не хочу, щоб змінити значення.
Я хочу, щоб змінити значення на , Маючи на увазі, знову ж таки,
що це адресу.
Таким чином, щоб зробити це, я знову потрібно сказати зірка отримує.
А тепер я хочу, щоб покласти у вартості ось на б, що не значення Ь, які
також є адресою.
>> Отже, ще раз кажу, нічліг.
Тоді в моїй останній рядку, мені потрібно переписати те, що за адресою б з
те, що було в оригінальному розташуванні в.
Щоб зробити це, я зірка б отримує TMP.
>> Тепер в кінці дня, це функція як і раніше просто
три рядки коду.
Але тому що це маніпулювання значення шляхом їх адресу, а не
сирі значення, які були передані в Функція, я стверджую, що своп тепер
уповноважені змінювати значення, які передаються в через їх адреси.
>> Але мені потрібно зробити одна зміна все ще.
Я більше не може пройти в х і у самих себе.
Мені потрібно пройти в адресах х і у.
А для цього, мені потрібно деякі трохи інші позначення нагорі.
Я хочу, щоб поміняти х і у, передаючи адреса х, позначається
амперсанд х, а також адресу у, позначається амперсанд у.
>> Точно так же, нагорі тепер мені потрібно змінити прототип функції, щоб
відповідати зміна, яке я зробив, так що , Знову ж, це покажчик на междунар.
б, знову ж, це покажчик на междунар.
І тепер я можу врятувати мій файл.
І давайте перекомпілювати і запустити його.
>> Зробити своп точка слеш своп.
І на цей раз, х і у дійсно зараз місцями так, що їх значення не
1 і 2, але 2 і 1.