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 Тогда давайте сделаем то же самое для B, изменяя это от междунар быть указателем на 15 00:00:40,820 --> 00:00:42,780 Int или адрес в междунар. 16 00:00:42,780 --> 00:00:45,860 >> Тогда внутри свопа, давайте еще объявить TMP так что мы имеем 17 00:00:45,860 --> 00:00:47,810 временное место для значения х годов. 18 00:00:47,810 --> 00:00:52,430 Но'S значение не является сам по себе, так, Опять же, в настоящее время является адрес 19 00:00:52,430 --> 00:00:53,270 некоторого междунар. 20 00:00:53,270 --> 00:00:57,320 Так что, если мы хотим идти по этому адресу и получить Int по этому адресу, у нас есть 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 Чтобы сделать это, я звезда б получает TMP. 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