background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37"

input logo icon
Теги видео
|

Теги видео

как научится программировать с нуля
для новичков
научиться программированию
курсы программирования
уроки
функции
visual studio 2017 уроки
visual studio
программист обучение
азы программирования
область видимости
область видимости переменных
локальные переменные
глобальные переменные
функции в с++ примеры
функция c++ определение
Прототип функції что это
функции c++ теория
возвращающие значения
функции и процедуры
параметры
реализация
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:00
Приветствую вас друзья Меня зовут Сергей
00:00:02
мы с вами продолжаем изучать
00:00:03
программирование на примере языка c+
00:00:06
Plus Мы с вами уже начали изучать
00:00:09
функции несколько тем уже у нас по ним
00:00:11
было поэтому пришло время узнать что
00:00:13
такое область видимости глобальные и
00:00:16
локальные переменные для того чтобы
00:00:18
используя функции не наступить на
00:00:20
кое-какие грабли частично Я уже в своих
00:00:22
уроках этой темы касался но теперь мы
00:00:25
изучим её более подробно для начала
00:00:28
давайте выясним что такое область
00:00:30
видимости в си плюсах любые фигурные
00:00:33
скобки
00:00:34
образуют определённый блок и переменные
00:00:38
или какие-то другие сущности которые мы
00:00:40
объявляем внутри этого блока нам не
00:00:43
видны вне этого блока то есть вот эти
00:00:46
фигурные скобки получается являются
00:00:48
областью видимости Ну вот к примеру
00:00:51
фигурные скобки Main - это область
00:00:53
видимости функции Main если мы например
00:00:57
в нашей функции Main
00:01:00
создадим какое-то условие какой-то
00:01:04
If Нам сейчас абсолютно неважно что это
00:01:07
будет за If то есть какое там будет
00:01:09
условие просто Как пример в данном
00:01:10
случае наш и будет выполняться всегда и
00:01:13
объявим какую-то переменную например
00:01:15
целочисленную переменную
00:01:21
внутри наших в нашего Ифа то есть в
00:01:25
фигурных скобках Ифа получается что наша
00:01:28
переменная которая мы объявляем
00:01:30
находится в области видимости вот это
00:01:32
вот этих вот двух фигурных скобок то эта
00:01:35
переменная и будет видимо в нашей
00:01:39
программе только только вот в этих
00:01:41
фигурных скобках Пока мы в фигурных
00:01:44
скобках мы можем обратиться к этой
00:01:45
переменно присвоить ей допустим какое-то
00:01:47
значение да В данном случае мы
00:01:49
присваиваем ноль всё нормально если мы
00:01:52
сейчас соберём наш
00:01:55
проект то проект собирается успешно без
00:01:58
проблем но если мы выйдем за эти
00:02:01
фигурные скобки и попробуем где-нибудь
00:02:03
за ними обратиться к переменной A
00:02:07
то мы даже пытаясь набрать её видим что
00:02:10
компилятор Нам ничего о ней не
00:02:12
подсказывает То есть это случается
00:02:14
потому что данная переменная A просто не
00:02:18
видна вне вот этих вот фигурных скобок
00:02:21
переменная A ограничена только областью
00:02:24
действия вот этими вот фигурными
00:02:26
скобками где она объявлена поэтому Даже
00:02:29
если мы в рано вручную как-то возм да В
00:02:32
тупую напишем здесь что-нибудь
00:02:36
то у нас ничего не получится компилятор
00:02:38
будет ругаться на нашу попытку
00:02:41
что-нибудь делать с этой переменной но
00:02:43
если мы вынесем объявление нашей
00:02:45
переменной за вот эти вот фигурные
00:02:48
скобки область видимости функции
00:02:51
M то мы сможем спокойно сниу сде
00:02:58
функции
00:03:00
его фигурные скобки тоже находятся в
00:03:03
области видимости функции то есть вот в
00:03:05
этих фигурных
00:03:07
скобках Как пример области видимости
00:03:10
Можно также ещё назвать цикл Ну в данном
00:03:15
случае у нас вот Обычный такой
00:03:18
цикл который просто проходит 10 итераций
00:03:21
и у него есть счётчик
00:03:28
иние
00:03:30
обычна вая целочисленная переменная но
00:03:32
мы можем с ней работать только в области
00:03:34
видимости вот этого вот цикла если мы
00:03:37
захотим вот здесь что-то с ней сделать
00:03:39
Ну допустим присвоить сразу значение 10
00:03:43
ну без проблем то есть мы можем это
00:03:45
сделать Правда другой вопрос зачем нам
00:03:47
это может понадобиться но мы можем так
00:03:50
сделать но если мы возьмём и попробуем
00:03:52
обратиться к переменной I где-то вне
00:03:54
цикло то у нас уже ничего не выйдет у
00:03:58
нас будет та же самая проблема
00:04:00
идентификатор I Не определён ну вообще
00:04:03
как я уже вам показывал объявление
00:04:05
счётчиков для цикла можно выносить вне
00:04:08
циклов иногда это нужно в зависимости от
00:04:11
задачи которую вы решаете Вы можете как
00:04:13
объявление такого счётчика вынести вне
00:04:16
цикла так и присвоения ему значений Ну в
00:04:18
принципе Вот в такой конструкции вы уже
00:04:21
можете
00:04:23
обращаться к переменной которая также
00:04:25
является счётчиком цикла Ну потому что
00:04:27
мы вынесли е за область видимо
00:04:30
это к как ещ один пример того что такое
00:04:34
область видимости можно привести вот что
00:04:36
Давайте прямо из нашего мена вообще всё
00:04:38
уберём и напишем здесь ещё одни фигурные
00:04:40
скобки просто фигурные скобки то есть
00:04:42
больше ничего нету в этих фигурных
00:04:45
скобках обм опять переменную
00:04:47
в этих фигурных скобках Мы также можем к
00:04:50
ней обращаться если мы набираем Мы видим
00:04:52
что компилятор нам уже подсказывает что
00:04:54
у на есть такая перемен
00:04:58
признание горных скобках возьмём
00:05:00
попробуем К ней
00:05:02
обратиться если мы попробуем К ней
00:05:04
обратиться компилятор начнёт на неё
00:05:05
ругаться подчёркивать её то
00:05:08
есть всё потому что мы взяли
00:05:11
искусственно ограничили область
00:05:13
видимости вот этой переменной вот этими
00:05:15
фигурными скобками если мы сейчас
00:05:17
уберём то без проблем всё начинает
00:05:20
работать если пересорт то он
00:05:27
скомпилировать что такое область
00:05:28
видимости вообще же согласно правилам
00:05:31
области видимости переменные делятся на
00:05:35
глобальные и локальные Ну что такое
00:05:37
локальные переменные Мы с вами уже
00:05:39
видели то есть это переменные которые
00:05:41
находятся в какой-то области видимости
00:05:43
Да в какой-то из областей видимости
00:05:47
допустим функция
00:05:48
Main какой-то If for даже другая
00:05:52
какая-то функция да давайте объявим е
00:05:54
одну
00:05:55
функцию она нам пригоди профу которая
00:05:59
ничего не
00:06:01
делает если мы вот здесь какую-то
00:06:03
переменную
00:06:05
объявим ну пускай будет переменная Z Ну
00:06:09
то понятное дело что мы с этой
00:06:10
переменной z можем работать только
00:06:13
внутри этой
00:06:14
функции Вот здесь мы например где-то в
00:06:18
мене к ней обрати обратиться не можем
00:06:20
потому
00:06:21
что
00:06:24
область видимости нашей переменной z
00:06:27
ограничена функцией функцией фу и такая
00:06:30
переменная будет локальная потому что
00:06:33
она доступна только из какого-то одного
00:06:36
локального
00:06:38
места есть ещё переменные глобальные
00:06:40
которые доступны нам везде вообще где
00:06:43
угодно в мене в любой функции То есть
00:06:45
если мы с этой переменной сделаем где-то
00:06:47
что-то то все изменения на ней
00:06:51
отобразятся в любом случае давайте
00:06:54
посмотрим что такое глобальная
00:06:56
переменная глобальные перемен создаются
00:06:59
областей видимости обычно ещ домена Ну
00:07:04
чаще всего пишут в начале программы Но
00:07:07
вообще не стоит злоупотреблять
00:07:09
глобальными переменными это дурной тон
00:07:11
но В некоторых случаях Они конечно нужны
00:07:13
ну и вот к примеру У нас вот здесь в
00:07:16
начале нашей программы объявляется
00:07:19
какая-то глобальная переменная
00:07:22
под
00:07:24
названием вот к такой переменной мым
00:07:27
обра где угодно давайте пока вот это всё
00:07:30
уберём оно Нам сейчас не нужно мы можем
00:07:33
обратиться к ней в функции ф Ну наверно
00:07:37
не очень удачные название Давайте
00:07:39
назовём е как-нибудь нуну ладно пусть
00:07:41
будет просто
00:07:43
вот такой вот глобальная переменная мы
00:07:46
можем обратиться
00:07:48
функции она здесь видна мы можем ей
00:07:51
присвоить какое-то
00:07:52
значение мы можем обратиться в Здесь э
00:07:56
переменная тоже вид Ну потому что она
00:07:58
глобальная она везде по программе видна
00:08:01
если мы напишем какую-то ещё функцию мы
00:08:03
к этой переменной тоже сможем обратиться
00:08:05
и из другой функции есть очень важное
00:08:10
отличие глобальных переменных от
00:08:13
локальных обычно если мы создаём
00:08:17
какую-то локальную переменную Ну пусть
00:08:19
это будет
00:08:22
б где-то в локальной области видимости
00:08:26
она инициализируется
00:08:28
мусором Давайте
00:08:35
здесь напишем какой-нибудь код чтобы
00:08:37
просто можно было на нём поставить точку
00:08:39
останова и что-то зацепиться вот
00:08:43
смотрите так это мы пока закроем
00:08:47
переменная которая у нас
00:08:48
инициализирована точнее просто объявлена
00:08:50
но не
00:08:51
инициализирована
00:08:53
в локаль обла
00:08:58
видимости у нас инициализируется мусором
00:09:00
если мы сами туда ничего не записали но
00:09:03
если это переменная глобальная которая
00:09:06
была в глобальной области видимости то
00:09:08
она инициализируется значением по
00:09:09
умолчанию Ну для переменной типа in
00:09:13
значение по умолчанию будет ноль теперь
00:09:16
Давайте проверим как влияют какие-либо
00:09:18
действия которые мы делаем с глобальной
00:09:21
переменно каких-то
00:09:23
локальных местах Давайте допустим
00:09:27
организуем вывод её
00:09:32
консоль наша программа просто выводит
00:09:34
нашу глобальную переменную в консоль Да
00:09:36
нас по умолчанию инициализируется нулём
00:09:38
если мы сделаем вот так прямо в мене
00:09:41
инкремент этой переменной то у нас уже
00:09:43
выведется единица Ну потому что мы в ме
00:09:46
её увеличили на один допустим давайте
00:09:49
мы в нашей функции увеличим
00:09:58
нау не изменится потому что мы не
00:10:00
вызываем нашу функцию Ну если где-то в
00:10:02
мене мы ещ и вызовем
00:10:05
функцию то наша переменная станет уже
00:10:08
равна
00:10:09
двум видите Какое здесь отличие если бы
00:10:12
мы передавали её параметрам то действие
00:10:15
которое бы мы над ней произвели функции
00:10:17
никак на не не повлияли Но если это
00:10:19
переменная глобальная есть она у нас
00:10:22
объявлена вне функции то что мы с ней
00:10:24
сделаем у нас отразится на глобальной
00:10:26
переменной есть е он интересный момент
00:10:30
Если у вас есть глобальная переменная
00:10:32
переменная с именем A и функция
00:10:35
принимает например
00:10:39
тоже какой-то параметр который носит
00:10:42
название
00:10:44
A то в таком случае функция не будет
00:10:48
работать с глобальной переменной она
00:10:51
будет работать с тем параметром который
00:10:53
у неё внутри Если в случае если параметр
00:10:56
и глобальная переменная A называться
00:10:59
одинаково Ну вот мы сюда передадим
00:11:02
какое-то значение Теперь смотрите что у
00:11:04
нас произойдёт
00:11:06
давайте сделаем шаг с заходом в отладчик
00:11:10
посмотрим вот эта переменная которую мы
00:11:12
передали функцию сейчас равна двойке Ну
00:11:14
потому что мы вот здесь вот передали
00:11:16
этот параметр мы сейчас увеличим
00:11:19
значение этой переменной на единицу
00:11:21
здесь уже будет ри и Хотя если мы сечас
00:11:23
наведём даже вот так вот да на
00:11:25
глобальную переменную нам компилятор
00:11:26
почему-то показывает что здесь двойка на
00:11:29
самом деле наша функция работает именно
00:11:32
с со своей локальной переменной A просто
00:11:35
компилятор здесь немножечко путается Ну
00:11:38
скажем так путается немножечко в
00:11:39
отладчике при работе программы Он
00:11:41
путаться точно не будет он будет
00:11:43
работать только со своей локальной
00:11:45
переменный Так что будьте внимательны
00:11:47
Какие параметры у вас передаются в
00:11:49
функцию как называются глобальные
00:11:51
переменные Как называются локальные В
00:11:53
общем Сейчас у нас эта переменная
00:11:54
увеличилась на единицу Ну в любом случае
00:11:57
тут уже как бы тройка да
00:11:59
Теперь мы выходим из функции смотрим
00:12:01
сколько у нас Какое значение у нас в
00:12:03
переменной A на самом деле она сохранила
00:12:06
своё значение потому что функция
00:12:08
работала с со своей локальной переменной
00:12:11
Ну глобально у нас как была нулём
00:12:13
изначально Ну потому что она по
00:12:14
умолчанию нулём
00:12:17
инициализировать нулём сейчас она
00:12:19
увеличилась на единицу и собственно
00:12:20
вывела к нам на экран вот такие вот
00:12:23
особенность есть с областями видимости в
00:12:26
языке программирования c+ если вам
00:12:29
что-то было непонятно то задавайте свои
00:12:31
вопросы внизу под этим видео в следующих
00:12:33
видео Постараюсь на них ответить если
00:12:35
вам это видео понравилось то не забудьте
00:12:37
поставить под ним лайк и конечно
00:12:39
подписывайтесь на канал чтобы не
00:12:40
пропустить следующие уроки Всем спасибо
00:12:42
за внимание
00:12:46
пока

Описание:

Понравилось видео или оказалось полезным? Подпишись! Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37 Уроки по программированию Наша группа ВК https://vk.com/smplcode Подписывайтесь на канал https://www.youtube.com/channel/UCtLKO1Cb2GVNrbU7Fi0pM0w

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.