C++ для «чайников» - страница 22

стр.

________

>7Это не означает, будто тип double может представить 10>38 разных значений; вспомните, что говорилось выше о количестве разрядов в числах этого типа. — Прим. ред.

_________________

45 стр. Глава 2. Премудрости объявления переменных


Таблица 2.1. Переменные С++

_________________

Переменная — Пример — Характеристика

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

int — 1 — Простые положительные или отрицательные числа,  используемые для перечисления . 

unsigned — 1U — Неотрицательные числа, предназначенные в первую очередь для перечислений.

long — 10L — Потенциально расширенная версия типа int. В Dev-C++ и Microsoft Visual С++ .NET разницы между типами long и int нет.

unsigned long —10UL — Неотрицательная версия типа long.

float  —  1.0F —  Действительные числа единичной точности. Это уменьшенная версия double , требующая меньшего количества памяти, но при этом имеющая меньшую точность и диапазон возможных значений.

double  —  1.0 — Стандартное представление чисел с плавающей точкой.

char — c  — Символьный тип; значением переменных может быть символ алфавита, цифра, знак препинания или знак арифметической операции. Не годится для арифметических операций.

string   —  "this is a  string" —  Строка символов, составляющая предложение.

bool  — true  —  Тип имеет только два логических значения — true и false ( истина и ложь ).

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Может показаться странным, что основным типом для действительных чисел является тип двойной точности, а не одинарной. Тому есть исторические причины — уходящие корнями в те времена, когда Большой Билл утверждал, что 640 Кбайт памяти хватит всем и всегда, а экономия памяти и повышение скорости вычислений за счёт точности представлялась разумной мерой. С удешевлением памяти и наращиванием мощности процессоров ( которые теперь работают с типом float с той же скоростью, что и с double ) тип double стал стандартом для чисел с плавающей точкой.

Следующий оператор объявляет переменные lVariable типа long и dVariable типа double и присваивает им начальные значения:


      /* объявление переменной типа long и установка её равной 1 */

      long lVariable ;

      lVariable = 1


      /* объявление переменной типа double и её инициализация */

      double dVariable ;

       dVariable = 1.0 ;


«Объявить и инициализировать переменную можно одним оператором:


      int nVariable = 1 ;

           /* объявление переменной и её инициализация */


» 

[Советы]

Единственное преимущество инициализации переменной в объявлении — уменьшение размеров текстов программ.

Переменная типа char может содержать единственный символ, в то время как строковая переменная — строку символов. Поэтому а можно интерпретировать и как символ а, и как строку, содержащую только букву а . В главе 9, "Второе знакомство с указателями", вы найдёте детальное описание этого типа данных. В качестве грубой аналогии можно рассматривать символ 'а' как отдельный патрон, а строку "а" — как автомат, в магазине которого имеется только один патрон.

_________________

46 стр. Часть 1. Первое знакомство с С++


«Символ а и строка а — это далеко не одно и то же. Если вы захотите присвоить символьной переменной строковое значение ( или наоборот ), вы не сможете этого сделать даже в том случае, когда строка содержит единственный символ.»

[Атас!]

Константы...47

Константой называют произвольную постоянную величину ( например, 1, 0.5 или 'с' ). Подобно переменным, константы имеют свой тип. В выражении n = 1 ; константа 1 имеет тип int. Чтобы привести 1 к типу long, нужно написать n = 1L ; . Для лучшего понимания можно провести следующую аналогию: если под 1 подразумевать поездку на грузовике, то 1L можно интерпретировать как путешествие на лимузине. Их маршруты могут быть совершенно одинаковыми, но согласитесь, что путешествовать вторым способом гораздо удобнее.

Константу 1 можно также привести к действительному числу 1.0. Однако заметим, что по умолчанию типом действительной константы является double. Поэтому 1.0 будет числом типа double , а не float.

«Величина true представляет собой константу типа bool, но "true" ( обратите внимание на кавычки ) — это уже строка. Кроме того, с учётом чувствительности С++ к регистру,