1 00:00:00,000 --> 00:00:03,080 >> ПРЕДСЕДНИК 1: Испада можемо успешно мењате вредности у два 2 00:00:03,080 --> 00:00:07,670 варијабле за доношење их у функционишу не по вредности или по примерку, али 3 00:00:07,670 --> 00:00:10,390 позивањем или њихове адресе. 4 00:00:10,390 --> 00:00:12,740 Другим речима, морамо да се искористи нешто познат као показивач. 5 00:00:12,740 --> 00:00:15,580 Показивач, заправо, само адреса неке променљиве. 6 00:00:15,580 --> 00:00:19,660 И тако, ако дајемо функцију која се зове, рецимо, замените са адресом 7 00:00:19,660 --> 00:00:23,550 променљива и адреса другог променљива, замена би требало да буде овлашћен да 8 00:00:23,550 --> 00:00:26,090 прелазак на сваки од тих адреса и заиста променити 9 00:00:26,090 --> 00:00:27,360 Вредности које су тамо. 10 00:00:27,360 --> 00:00:28,890 >> Да видимо то у контексту. 11 00:00:28,890 --> 00:00:31,360 Хајде да реимплемент замену као што следи. 12 00:00:31,360 --> 00:00:35,810 Прво, хајде да променимо не да буде инт али да буде показивач на инт или 13 00:00:35,810 --> 00:00:36,920 адреса инт. 14 00:00:36,920 --> 00:00:40,820 Онда хајде да урадимо исто за б, мењање она из инт да буде показивач 15 00:00:40,820 --> 00:00:42,780 инт или адреса неког инт. 16 00:00:42,780 --> 00:00:45,860 >> Тада унутар свап, хајде да и даље изјављујем тмп тако да имамо 17 00:00:45,860 --> 00:00:47,810 привремено место за његова вредност. 18 00:00:47,810 --> 00:00:52,430 Али је вредност није сама, јер, опет, сада је адреса 19 00:00:52,430 --> 00:00:53,270 неког инт. 20 00:00:53,270 --> 00:00:57,320 Дакле, ако желимо да идемо на ту адресу и добити инт на тој адреси, имамо 21 00:00:57,320 --> 00:01:03,020 дереференце овог показивача, такође путем оператер звезда, писање звезду. 22 00:01:03,020 --> 00:01:05,470 >> Даље, ја не желим да промените вредност. 23 00:01:05,470 --> 00:01:08,770 Желим да промените вредност на , имајући у виду, опет, 24 00:01:08,770 --> 00:01:10,350 да је адреса. 25 00:01:10,350 --> 00:01:14,050 Тако да то уради, ја опет треба да кажем звезда добија. 26 00:01:14,050 --> 00:01:18,360 А сада желим да ставим у вредности то је на б, не вредност б, која 27 00:01:18,360 --> 00:01:19,720 Такође је адреса. 28 00:01:19,720 --> 00:01:22,280 >> Дакле, опет кажем, стар Б. 29 00:01:22,280 --> 00:01:26,690 Онда у мом последњем реду, морам да препише оно што је на адреси Б са 30 00:01:26,690 --> 00:01:28,970 оно што је било на оригиналној локацији је. 31 00:01:28,970 --> 00:01:32,910 Да би то урадио, ја радим звезда нар добија тмп. 32 00:01:32,910 --> 00:01:34,820 >> Сада на крају дана, ова функција је и даље само 33 00:01:34,820 --> 00:01:35,950 три линије кода. 34 00:01:35,950 --> 00:01:39,860 Али зато што је манипулисање вредности путем њиховог адресу, а не 35 00:01:39,860 --> 00:01:43,700 рав вредности које су пролазили у функција, ја тврдим да је сада своп 36 00:01:43,700 --> 00:01:47,670 овлашћен да промените вредности које су прошли у преко њихове адресе. 37 00:01:47,670 --> 00:01:49,510 >> Али морам да се још једну промену. 38 00:01:49,510 --> 00:01:52,190 Ја више не могу проћи у Кс и И сами. 39 00:01:52,190 --> 00:01:55,030 Треба да прође у адресама к и и. 40 00:01:55,030 --> 00:01:58,160 И да се то уради, треба ми мало другачија нотација се врх. 41 00:01:58,160 --> 00:02:02,510 Желим да замени Кс и И полагањем у адреса к, указује 42 00:02:02,510 --> 00:02:07,190 амперсанд х, а адреса И, указује амперсанд и. 43 00:02:07,190 --> 00:02:10,570 >> Слично томе, до врха сада ми је потребно да се променити прототип функцију да 44 00:02:10,570 --> 00:02:14,980 одговара промену да сам направио, тако да је, опет, показивач на инт. 45 00:02:14,980 --> 00:02:17,190 б, опет, показивач на инт. 46 00:02:17,190 --> 00:02:18,770 И сад ја могу да сачувам датотеку. 47 00:02:18,770 --> 00:02:20,680 И хајде да компајлирате и покренете га. 48 00:02:20,680 --> 00:02:25,330 >> Направите своп тачка уписали косу замену. 49 00:02:25,330 --> 00:02:29,660 И овај пут, Кс и И су заиста сада Мењали су да су њихове вредности нису 50 00:02:29,660 --> 00:02:31,950 1 и 2, али 2 и 1. 51 00:02:31,950 --> 00:02:34,900