Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Область видимости переменныхВ предыдущих примерах часто объявлялись и использовались различные переменные. При этом важно знать, когда эти переменные доступны для использования или другими словами определить их область видимости. Рассмотрим такой пример. Листинг 2.10. Пример использования локальных переменных. #include В этом примере объявляются две переменные i и k. Причем переменная k объявлена внутри цикла for. Спрашивается можно ли ее использовать и за пределами этого цикла? В данном случае ответ будет отрицательный, т.к. переменная k «пропадает» за пределами тела цикла и существует только внутри него. Условия данного примера можно обобщить и сказать, что обычная переменная объявленная внутри фигурных скобок {} видна только в них и не может быт использована за их пределами. По этой причине переменные объявленные, например, внутри функции main() недоступны в других функциях и наоборот. Однако если объявить переменную вначале программы, а не внутри функции, то они становятся доступными всем функциям и будут иметь глобальную область видимости. Такие переменные называются глобальными. Следующий пример показывает объявление и использование глобальных переменных. Листинг 2.11. Определение глобальных переменных. #include Результатом выполнения программы будет следующий текст: 0 В этом примере объявлена глобальная переменная global_var, которая может использоваться и в функции main() и в функции my_func() и соответственно менять свое значение. В языке С можно задавать переменные с одинаковыми именами и типами если они принадлежат разной области видимости. Например, можно задать глобальную переменную var типа int и такую же переменную внутри функции main(). В этом случае простое обращение к переменной по ее имени будет означать работу с локальной переменной, а если необходимо работать с глобальной, то перед ее именем необходимо поставить два двоеточия ‘::’. Следующий пример показывает такой способ работы с переменными. Листинг 2.12. Работа с глобальными и локальными переменными. #include В результате получим var = 10, ::var = 5 В языке С можно задавать класс переменных, которые будучи объявленными внутри фигурных скобок {} не исчезают и за их пределами, но в то же время имеют область видимости только внутри них. Класс таких переменных называется статическим и задается с помощью ключевого слова static. Поясним сказанное на следующем примере. Листинг 2.13. Использование статических переменных. #include В результате на экране появятся следующие строчки: var = 1, var_st = 1 Анализ полученных результатов показывает, что статическая переменная var_st объявленная внутри функции iter() не исчезает после ее завершения и при повторном вызове функции не инициализируется заново, т.к. она уже существует. В языке С переменную можно задать как константу, т.е. ее значение нельзя изменять в процессе выполнения программы. Это бывает полезно, когда программист хочет обеспечить «защиту» переменной от изменения. Это достигается путем использования ключевого слова const, которое ставится перед типом переменной: const int var_const = 10; //правильная инициализация Например, ранее рассмотренная функция strcpy() копирования одной строки в другую принимает следующие параметры: char* strcpy(char* dest, const char* src); Здесь идентификатор const гарантирует, что строка src не будет изменена внутри функции strcpy().
Контрольные вопросы и задания 1.
Контрольные вопросы и задания 2.
Дата добавления: 2014-02-28; просмотров: 490; Нарушение авторских прав Мы поможем в написании ваших работ! |