1 00:00:00,000 --> 00:00:00,320 2 00:00:00,320 --> 00:00:02,700 >> DAVID J. Malan: Le të shkruaj një program në të cilat ne përpiqemi që të bie në ujdi vlerat e 3 00:00:02,700 --> 00:00:04,970 dy variablat, x dhe y. 4 00:00:04,970 --> 00:00:07,490 Që më parë, unë kam shkruar shumë e këtij programi tashmë. 5 00:00:07,490 --> 00:00:11,130 Së pari, unë deklaroj një ndryshueshme, x, dhe dyqan në të vlerën, 1. 6 00:00:11,130 --> 00:00:14,120 Pastaj unë deklaroj y ndryshueshme dhe dyqan në të vlerën, 2. 7 00:00:14,120 --> 00:00:17,700 >> Pastaj unë të vazhdojë me printf për të shfaqur vlerat e këtyre dy variablave. 8 00:00:17,700 --> 00:00:21,090 Pastaj unë pretendojnë me një tjetër printf që do të shkëmbejnë ato variablave. 9 00:00:21,090 --> 00:00:23,690 Pastaj unë e quaj një funksion të quajtur swap. 10 00:00:23,690 --> 00:00:26,100 Dhe atëherë unë pretendojnë se variablat janë swapped. 11 00:00:26,100 --> 00:00:30,610 Dhe atëherë unë të shtypura nga se ajo që unë pretendojnë jane vlerat reja e x dhe y. 12 00:00:30,610 --> 00:00:32,030 >> Tani çfarë është kjo swap funksion? 13 00:00:32,030 --> 00:00:34,970 Kjo nuk është diçka që vjen me C. Në të vërtetë, në qoftë se ne e shikojmë në krye të mia 14 00:00:34,970 --> 00:00:38,850 fotografi, ju do të vëreni se unë kam deklaruar një prototip për këtë shkëmbim funksion 15 00:00:38,850 --> 00:00:42,750 specifikuar që ai merr dy ints, quajtur arbitrarisht a dhe b, dhe kjo 16 00:00:42,750 --> 00:00:44,300 Funksioni nuk ka kthim asgjë. 17 00:00:44,300 --> 00:00:48,370 Pra, me sa duket, ai bën atë që thotë në këmbime të A-së dhe vlerat e B-së. 18 00:00:48,370 --> 00:00:50,170 Le të zbatuar tani swap. 19 00:00:50,170 --> 00:00:53,820 >> Së pari, unë jam duke shkuar për të shpallur një të përkohshme ndryshueshme dhe të caktojë atë 20 00:00:53,820 --> 00:00:57,260 vlera në një, edhe pse unë mund vetëm të si ruhen lehtë në atë të b. 21 00:00:57,260 --> 00:01:00,925 Po pastaj do të ndryshojë vlerën e një të jenë të barabartë me atë në b. 22 00:01:00,925 --> 00:01:04,849 Dhe pastaj së fundi, unë jam duke shkuar për të ndryshuar Vlera e b të jetë ajo një ishte, por është 23 00:01:04,849 --> 00:01:06,340 tani në temp. 24 00:01:06,340 --> 00:01:08,910 >> Tani unë pretendojnë atë që unë kam bërë vetëm është logjikisht e saktë. 25 00:01:08,910 --> 00:01:12,780 Unë e kam ruajtur një në një variabël të përkohshëm, ndryshuar së vlerës për të qenë b-së, dhe më pas 26 00:01:12,780 --> 00:01:15,580 ndryshuar vlerën e b-së që të jetë ajo një të ishte. 27 00:01:15,580 --> 00:01:18,620 Por kur unë përpilojnë dhe të drejtuar këtë Programi, I shqetësuar se nuk është e 28 00:01:18,620 --> 00:01:20,140 duke shkuar atë që unë shoh. 29 00:01:20,140 --> 00:01:21,625 >> Bëni, nuk ka swap. 30 00:01:21,625 --> 00:01:24,350 dot çaj, nuk ka swap. 31 00:01:24,350 --> 00:01:27,560 Dhe për fat të keq, sipas printf, vlera e x dhe y, madje edhe 32 00:01:27,560 --> 00:01:31,560 pasi ne pretendojnë të jenë të shkëmbejnë tyre, është ende 1 dhe 2. 33 00:01:31,560 --> 00:01:32,630 >> Tani pse është se? 34 00:01:32,630 --> 00:01:36,160 E pra, ajo rezulton se në kryesore, kur ne e quajnë këtë shkëmbim funksion, duke kaluar në 35 00:01:36,160 --> 00:01:39,960 x dhe y si argumente, është e vërtetë kopjet e x dhe y se 36 00:01:39,960 --> 00:01:41,310 janë miratuar në shkëmbim. 37 00:01:41,310 --> 00:01:45,430 Në të vërtetë, vlerat e tyre 1 dhe 2 janë kaluar në shkëmbim si dhe b. 38 00:01:45,430 --> 00:01:48,590 Dhe kjo është një dhe b se ne jemi në fund të fundit shkëmbejnë në kryesore. 39 00:01:48,590 --> 00:01:50,810 >> Dmth 1 bëhet 2, 2 bëhet 1. 40 00:01:50,810 --> 00:01:54,630 Por për shkak se swap nuk ka vlerë të kthimit dhe për shkak se ajo ka marrë kopje të x 41 00:01:54,630 --> 00:01:58,220 dhe y, kjo është sjellje e ka nuk ka efekt në x dhe y. 42 00:01:58,220 --> 00:02:02,610 Në të vërtetë, a dhe b janë të scoped, si të thuash, të bie në ujdi, ndërsa x dhe y të mbetet 43 00:02:02,610 --> 00:02:03,990 scoped të kryesore. 44 00:02:03,990 --> 00:02:05,070 >> Pra, ne kemi një problem. 45 00:02:05,070 --> 00:02:06,320 Por se si të rregullohet? 46 00:02:06,320 --> 00:02:08,312