Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Типы с плавающей точкой
Внутреннее представление вещественного числа состоит из 3 частей: знака, мантиссы и порядка. В IBM-совместимых ПК величины типа float занимают 4 байта, из которых один разряд отводится под знак мантиссы, 8 разрядов под порядок и 23 – под мантиссу. Величины типы double занимают 8 байтов, под порядок и мантиссу отводятся 11 и 52 разряда соответственно. Длина мантиссы определяет точность числа, а длина порядка его диапазон. Если перед именем типа double стоит спецификатор long, то под величину отводится 10 или более байтов. Внутреннее представление чисел типа long double сильно зависит от реализации.
Тип void К основным типам также относится тип void. Множество значений этого типа пусто.
Переменные Переменная в С++ – именованная область памяти, в которой хранятся данные определенного типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение. Перед использованием любая переменная должна быть описана. Примеры: int a; float x; Общий вид оператора описания: [класс памяти][const]тип имя [инициализатор]; Класс памяти может принимать значения: auto, extern, static, register. Класс памяти определяет время жизни и область видимости переменной. Если класс памяти не указан явно, то компилятор определяет его исходя из контекста объявления. Время жизни может быть «программа» – все время выполнения программы или «блок» – в течение выполнения блока. Область видимости – часть текста программы, из которой допустим обычный доступ к переменной. Обычно область видимости совпадает с областью действия. Исключение представляет случай, когда во внутреннем блоке существует переменная с таким же именем. Const – показывает, что эту переменную нельзя изменять (именованная константа). При описании можно присвоить переменной начальное значение (инициализация). Классы памяти: auto –автоматическая локальная переменная. Спецификатор auto может быть задан только при определении объектов блока, например, в теле функции. Этим переменным память выделяется при входе в блок и освобождается при выходе из него. Вне блока такие переменные не существуют. Т. о., время жизни автоматических (локальных) переменных – блок, область видимости – блок. extern – глобальная переменная, она определена в другом месте программы (в другом файле или вне всех функций данного файла). Используется для создания переменных, которые доступны во всех файлах программы или всем функциям данного файла. static – статическая переменная, она существует только в пределах того файла или той функции, где определена, но существует все время выполнения программы. Т.о. время жизни статической переменной – программа, область видимости – блок. register – аналогичны auto, но память под них выделяется в регистрах процессора. Если такой возможности нет, то переменные обрабатываются как auto. Описание register рассматривается компилятором как просьба, но правильное его использование может помочь компилятору построить более эффективный код.
Пример. Программа состоит из двух файлов. Файл 1: int a; // глобальная переменная void main(){ int b; // локальная переменная extern int x; // глобальная переменная х, определенная в другом месте static int c; // локальная статическая переменная a=1; // присваивание глобальной переменной int a; // локальная переменная а a=2; // присваивание локальной переменной ::a=3; // присваивание глобальной переменной …// другой текст } Файл 2: int x=4;// определение и инициализация х …// другой текст В примере переменная а определена вне всех блоков. Областью действия переменной а является вся программа, кроме тех строк, где используется локальная переменная а. Переменные b и с – локальные, область их видимости – блок. Время жизни различно: память под b выделяется при входе в блок (т. к. по умолчанию класс памяти auto), освобождается при выходе из него. Переменная с (static) существует, пока работает программа. Если при определении начальное значение переменным не задается явным образом, то компилятор обнуляет глобальные и статические переменные. Автоматические переменные не инициализируются. Имя переменной должно быть уникальным в своей области действия. Рекомендации по составлению имен: - используйте понятные имена; - для локальных переменных используйте короткие и привычные имена, для глобальных – осмысленные и, возможно, длинные; - не используйте в одной области видимости имена, отличающиеся лишь регистром; - учтите, что символы о и 0, l и 1 похожи, не используйте в одной области видимости имена, отличающиеся лишь этими символами - используйте прописные буквы для имен констант, начинайте имена типов с прописных букв, имена локальных переменных составляйте из строчных букв. В примере extern int x; – объявление, а остальные – определения.
2.5.Знаки операций в Си++ С++ содержит богатый набор операций. Операции сгруппированы по приоритетам, всего 15 групп приоритетов. Смысл операции зависит от количества операндов, к которым она применяется, а также от типов операндов.
Таблица 2.1 Унарные операции
В таблицах 2.2 и 2.3 приведены бинарные операции.
Таблица 2.2 – Бинарные операции: аддитивные
Таблица 2.3 – Бинарные операции: мультипликативные
Операции сдвига (определены только для целочисленных операндов) и приведены в таблице 2.4. Формат выражения с операцией сдвига: операнд_левый операция_сдвига операнд_правый
Таблица 2.4 – Операции сдвига
Поразрядные операции приведены в таблице 2.5.
Таблица 2.5 – Поразрядные операции
Операции сравнения: результатом являются true (не 0) или false (0) и приведены в таблице 2.6.
Таблица 2.6 – Операции сравнения
Логические бинарные операции приведены в таблице 2.7.
Таблица 2.7 – Логические операции
Date: 2016-11-17; view: 281; Нарушение авторских прав |