Первый слайд презентации
Область видимости переменных. *Примеры кода переписывать обязательно!
Слайд 2
Все переменные по типу видимости делят на глобальные и локальные: Глобальные переменные создаются до главной функции ( int main(), либо аналоги void setup(), void Start() ). Глобальные переменные можно использовать в любом месте программы: в функциях, в структурах, в классах. Но если объект структуры изменит эту переменную, она поменяется для всей программы, а не только для этого объекта. Если глобальной переменной не дать стартовое значение – обычно в неё записывается 0.
Слайд 3
Стоит отметить, что глобальные переменные можно создавать даже до команд #include. С помощью глобальных переменных можно настраивать общие таймеры и состояния в программах. Глобальные переменные создаются стандартными командами int, float, char, string …..
Слайд 4
Локальные переменные создаются внутри какого-то блока кода (внутри фигурных скобок), например: внутри условия, внутри функции, внутри цикла и т.д. В данных примерах переменные создаются внутри блока if или for, и поэтому считаются локальными. А значит переменной « t » нельзя пользоваться снаружи условия if. Так же и переменная « i », она создаётся внутри for, а значит за пределами for (до { или после } ) её использовать нельзя. При нарушении этого правила вы увидите ошибку:
Слайд 5
Локальные переменные уничтожаются, после завершения блока кода, то есть, в таких переменных не получится хранить информацию долго. Они нужны для кратковременных подсчётов, например, чтобы посчитать сколько раз выполнился цикл. Однако, у них есть и положительная сторона – поскольку они удаляются из памяти после блока кода – такие переменные не будут нагружать компьютер всё время, работы программы. Если локальной переменной не дать стартовое значение – туда может поместиться « рандомное » число, поэтому, если вы ведёте строгие подсчёты, дописывайте стартовые значения для всех переменных!
Слайд 6
Скрытие объектов (переменных): На самом деле, создавать переменные с одинаковыми именами МОЖНО ! Главное, чтобы они создавались внутри разных блоков кода (внутри разных фигурных скобок): Но важно понимать, что новые переменные, которые созданы внутри фигурных скобок, будут скрывать (замещать) предыдущие. Рассмотрите внимательно пример и результат работы кода. Сначала cout выводит 100, но после создаётся ещё один «х», в который записывается «50» поскольку он создан внутри {} он «главнее» и если вывести «х» – получим «50», после внутри ещё одних {} создаётся ещё «х», и он важнее предыдущего, в него записывается «10», и на экране выводится «10»
Слайд 7
Но стоит отметить, что х=10 перестанет существовать после 21й строчки, где } и его нельзя использовать до 18 строчки, где {, а х=50 перестанет существовать после 23й строчки, где } и его нельзя использовать до 14й строчки, где {, а тот х, что равен 100 перестанет существовать только когда мы выключим программу и его можно использовать где угодно. Получается, что локальные переменные всегда «главнее» глобальных, но только пока они существуют.
Слайд 8
Статичные переменные, это переменные созданные локальными, но они не уничтожаются после завершения блока кода, однако, использовать их можно по прежнему только внутри их фигурных скобок: Рассмотрите эти 2 примера: слева используется статичная переменная, справа обычная локальная. У локальной переменной каждый раз сбрасывается значение, и к ней прибавляется « 1 ». К статичной переменной тоже прибавляется «1», но она сохраняет предыдущее значение, и каждый раз увеличивается на «1».
Слайд 9
Статичные переменные так же можно использовать внутри функций: При каждом новом вызове функции sum2 () значение переменной « sum » не обнуляется (хотя и написано sum=0 ), а увеличивается на число, переданное в эту функцию.
Последний слайд презентации: Область видимости переменных. *Примеры кода переписывать обязательно!
Стоит так же отметить, что при передаче переменных в функцию, перемещается не сама переменная, а только её значение: В этом примере мы «отправляем» переменную «а» в функцию. Но на самом деле, у «а» копируется значение (чему она равна) и значение отправляется в локальную переменную функции, то есть в «х». «а» при этом остаётся на месте. Внутри самой функции с «х» выполняются какие-то математические манипуляции, но «а» при этом никак не меняется.