1 00:00:00,000 --> 00:00:03,080 >> Gjuha 1: Ajo rezulton ne mund bie në ujdi me sukses vlerat në dy 2 00:00:03,080 --> 00:00:07,670 variablat duke kaluar ato në një funksionojnë jo sipas vlerës ose me kopje, por 3 00:00:07,670 --> 00:00:10,390 me referenca ose nga adresat e tyre. 4 00:00:10,390 --> 00:00:12,740 Me fjalë të tjera, ne kemi nevojë për të levave diçka e njohur si një tregues. 5 00:00:12,740 --> 00:00:15,580 Një akrep, me të vërtetë, është vetëm Adresa prej rreth ndryshueshme. 6 00:00:15,580 --> 00:00:19,660 Dhe kështu që në qoftë se ne të sigurojë një funksion të quajtur, të themi, të bie në ujdi me adresën e 7 00:00:19,660 --> 00:00:23,550 një ndryshore dhe adresën e një tjetër variabël, swap duhet të fuqizohet për të 8 00:00:23,550 --> 00:00:26,090 shkojnë në secilin prej këtyre adresave dhe në të vërtetë të ndryshojë 9 00:00:26,090 --> 00:00:27,360 Vlerat që janë atje. 10 00:00:27,360 --> 00:00:28,890 >> Le të shohim këtë në kontekst. 11 00:00:28,890 --> 00:00:31,360 Le të reimplement swap si më poshtë. 12 00:00:31,360 --> 00:00:35,810 Së pari, le të ndryshojë një mos jetë një int por të jetë një tregues për një int ose 13 00:00:35,810 --> 00:00:36,920 adresa e një int. 14 00:00:36,920 --> 00:00:40,820 Pastaj le të bëjë të njëjtën gjë për b, ndryshuar ajo nga një int të jetë një tregues për një 15 00:00:40,820 --> 00:00:42,780 int ose adresën e një int. 16 00:00:42,780 --> 00:00:45,860 >> Pastaj brenda swap, le ende deklarojnë tmp që të kemi një 17 00:00:45,860 --> 00:00:47,810 vend i përkohshëm për një vlerë-së. 18 00:00:47,810 --> 00:00:52,430 Por një e vlerë nuk është në vetvete, sepse, përsëri, a është tani adresa 19 00:00:52,430 --> 00:00:53,270 e disa int. 20 00:00:53,270 --> 00:00:57,320 Pra, nëse ne duam të shkojnë në atë adresë dhe merrni int në atë adresë, ne kemi 21 00:00:57,320 --> 00:01:03,020 dereference këtë akrep, edhe nga mënyra e operatori yll, yll shkruar një. 22 00:01:03,020 --> 00:01:05,470 >> Tjetra, unë nuk dua të ndryshojnë vlera e një. 23 00:01:05,470 --> 00:01:08,770 Unë dua të ndryshojë vlerën në një, duke patur parasysh, përsëri, 24 00:01:08,770 --> 00:01:10,350 se a është një adresë. 25 00:01:10,350 --> 00:01:14,050 Pra, për të bërë këtë, unë përsëri nevojë për të thënë një yll merr. 26 00:01:14,050 --> 00:01:18,360 Dhe tani unë dua të vënë në vlerën e që është në B nuk, vlera e B, e cila 27 00:01:18,360 --> 00:01:19,720 gjithashtu është një adresë. 28 00:01:19,720 --> 00:01:22,280 >> Pra, përsëri unë them, yll b. 29 00:01:22,280 --> 00:01:26,690 Pastaj në linjë tim të fundit, unë duhet të mbishkruaj atë që është në adresën b me 30 00:01:26,690 --> 00:01:28,970 ajo që ishte në një vend të origjinal. 31 00:01:28,970 --> 00:01:32,910 Për ta bërë këtë, unë bëj yll b merr tmp. 32 00:01:32,910 --> 00:01:34,820 >> Tani në fund të ditës, kjo funksion është ende vetëm 33 00:01:34,820 --> 00:01:35,950 tre rreshta të kodit. 34 00:01:35,950 --> 00:01:39,860 Por për shkak se është manipuluar vlerat me anë të adresës së tyre dhe nuk 35 00:01:39,860 --> 00:01:43,700 Vlerat e papërpunuara që janë kaluar në funksion, unë pretendojnë se swap është tani 36 00:01:43,700 --> 00:01:47,670 autorizuar për të ndryshuar vlerat që janë miratuar në via adresat e tyre. 37 00:01:47,670 --> 00:01:49,510 >> Por kam nevojë për të bërë një ndryshim ende. 38 00:01:49,510 --> 00:01:52,190 Unë mund të kalojë më në x dhe y vetë. 39 00:01:52,190 --> 00:01:55,030 Unë kam nevojë për të kaluar në adresat e x dhe y. 40 00:01:55,030 --> 00:01:58,160 Dhe për të bërë këtë, kam nevojë për disa pak ndryshme top simbol up. 41 00:01:58,160 --> 00:02:02,510 Unë dua të bie në ujdi x dhe y duke kaluar në adresa e x, treguar nga 42 00:02:02,510 --> 00:02:07,190 simbol x, dhe adresa e y, treguar nga y ampersand. 43 00:02:07,190 --> 00:02:10,570 >> Në mënyrë të ngjashme, deri krye tani nuk kam nevojë për të ndryshojë prototip e funksionit të 44 00:02:10,570 --> 00:02:14,980 ndeshje ndryshimin që kam bërë, në mënyrë që një është, përsëri, një tregues për një int. 45 00:02:14,980 --> 00:02:17,190 b është, përsëri, një tregues për një int. 46 00:02:17,190 --> 00:02:18,770 Dhe tani unë mund të ruaj dosjen time. 47 00:02:18,770 --> 00:02:20,680 Dhe le të përpiluar dhe drejtuar atë. 48 00:02:20,680 --> 00:02:25,330 >> Bëni shkëmbim shkëmbim dot çaj. 49 00:02:25,330 --> 00:02:29,660 Dhe këtë herë, x dhe y janë me të vërtetë tani swapped tillë që vlerat e tyre nuk janë 50 00:02:29,660 --> 00:02:31,950 1 dhe 2, por 2 dhe 1. 51 00:02:31,950 --> 00:02:34,900