SPEAKER 1: Оказва се, можем успешно размяна на стойностите в две променливи, като ги прехвърляха в функционира не по стойност или от копие, но чрез позоваване или от техните адреси. С други думи, ние трябва да се наберат нещо, известно като указател. A показалка, наистина, е само адрес на някаква променлива. И така, ако ние осигуряваме функция, наречена, например, размяна с адреса на променлива и адреса на друга променлива, суап следва да бъде оправомощена да отидете на всеки един от тези адреси и дори да промени ценности, които са там. Нека да видим това в контекст. Нека reimplement суап, както следва. Първо, нека да се промени да не бъде Int но за да бъде указател към Int или адрес на вътр. Тогава нека направим същото и за б, промяна това от Int да бъде указател към Int или адрес на Int. Тогава вътре в суап, нека още Декларирам, TMP, така че ние имаме временно място за на стойност. Но на стойност не е себе си, защото отново, а сега е на адреса на някои вътр. Така че, ако искаме да отидем на този адрес и получите Int на този адрес, ние имаме сочен този указател, също под формата на оператора на звезда, писане звезда. На следващо място, аз не искам да се промени стойността на. Искам да променя стойността на а, като се има предвид, отново, че е адрес. Така че, за да направим така, аз отново трябва да се каже, звезда получава. И сега искам да се сложи в стойността че е в б, не стойността на б, който също е адрес. Така че, отново казвам, звезда б. След това в последния ми ред, трябва да замените това, което е на адрес б с какъв е бил първоначално местоположение на А. За да направите това, което правя звезда б получава ПТУ. Сега в края на краищата това функция е все още само три реда код. Но тъй като това е манипулиране на стойности на чрез адреса си и не суровини и ценности, които бяха приети в функция, аз твърдя, че суап сега е упълномощено да промени стойностите, които са преминали през чрез техните адреси. Но трябва да се направи една промяна все още. Вече не може да премине в х и у себе си. Трябва да мине в адресите на х и у. И за да направим това, имам нужда от малко различен нотация до върха. Искам да сменяте X и Y, като преминават през адреса на х, посочен от амперсанд X, както и адреса на Y, посочено от амперсанд у. По същия начин, до върха сега ми е необходимо, за да промените прототип на функцията на съвпада с промяната, която съм направил, така че а отново е указател към вътр. б отново е указател към вътр. И сега не мога да спася моето досие. И нека да компилирате и да го стартирате. Направете суап точка наклонена черта суап. И този път, X и Y са наистина сега разменят така, че техните стойности не са 1 и 2, но 2 и 1.