Конспект лекций по информатике и информационным технологиям

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, отрицанием

RkJQdWJsaXNoZXIy MTY0OTYy