Конспект лекций по информатике и информационным технологиям
131 память выделяется при входе в блок и освобождается при выходе из него. Вне блока такие переменные не существуют. extern - глобальная переменная, она находится в другом месте программы (в дру гом файле или долее по тексту). Используется для создания переменных, которые доступ ны во всех файлах программы. static - статическая переменная, она существует только в пределах того файла, где определена переменная. register - аналогичны auto, но память под них выделяется в регистрах процессора. Если такой возможности нет, то переменные обрабатываются как auto. Пример int а; //глобальная переменная void main(){ int Ь;//локальная переменная extern int х;//переменная х определена в другом месте static int с;//локальная статическая переменная а=1;//присваивание глобальной переменной int а;//локальная переменная а а=2;//присваивание локальной переменной ::а=3;//присваивание глобальной переменной } int х=4;//определение и инициализация х В примере переменная а определена вне всех блоков. Областью действия перемен ной а является вся программа, кроме тех строк, где используется локальная переменная а. Переменные b и с - локальные, область их видимости - блок. Время жизни различно: па мять под b выделяется при входе в блок (т. к. по умолчанию класс памяти auto), освобож дается при выходе из него. Переменная с (static) существует, пока работает программа. Если при определении начальное значение переменным не задается явным обра зом, то компилятор обнуляет глобальные и статические переменные. Автоматические пе ременные не инициализируются. Имя переменной должно быть уникальным в своей области действия. Описание переменной может быть выполнено или как объявление, или как опреде ление. Объявление содержит информацию о классе памяти и типе переменной, определе ние вместе с этой информацией дает указание выделить память. В примере extern int х; - объявление, а остальные - определения. 10.6. Выражения Из констант, переменных, разделителей и знаков операций можно конструировать выражения. Каждое выражение представляет собой правило вычисления нового значения. Выражение в языке Си++ есть совокупность операндов, связанных знаками операций и круглыми скобками. В качестве операндов могут использоваться константы, переменные (в том числе и элементы массивов, поля объектов), вызовы функций (стандартных и опре деленных программистом) и выражения. В Си++ используются следующие операции. Унарные операции & получение адреса операнда * Обращение по адресу (разыменование) - унарный минус, меняет знак арифметического операнда ~ поразрядное инвертирование внутреннего двоичного кода целочис ленного операнда(побитовое отрицание) ! логическое отрицание (НЕ). В качестве логических значений ис пользуется 0 - ложь и не 0 - истина, отрицанием 0 будет 1, отрицанием
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy