Читать «Полный справочник по С++» онлайн - страница 26

Герберт Шилдт

В языке С предусмотрено два типа для представления чисел с плавающей точкой: float и double. Используя модификаторы, можно создать еще несколько вариантов основных типов. По умолчанию компилятор приводит числовые константы к наименьшему подходящему типу. Таким образом, если предположить, что целое число занимает 16 бит, то число 10 по умолчанию имеет тип int, а число 103000 — тип long. Несмотря на то что число 10 можно привести к символьному типу, компилятор не нарушит границы типов. Единственное исключение из этого правила представляет собой константа с плавающей точкой, которая по умолчанию имеет тип double.

В большинстве программ соглашения, принятые по умолчанию, являются вполне разумными. Однако, используя суффиксы, типы констант можно задавать явно. Если после константы с плавающей точкой поставить суффикс F, она будет иметь тип float. Если вместо буквы F поставить букву L, константа получит тип long double. Для целочисленных типов суффикс U означает unsigned, а суффикс L — long. Вот несколько примеров на эту тему.

Тип данныхПримеры констант
int1 123 21000 -234
long int35000L -34L
unsigned int10000U 987U 40000U
float123.23F 4.34e-3F
double123.23 1.0 -0.9876324
long double1001.2L

Шестнадцатеричные и восьмеричные константы

Иногда позиционные системы счисления по основанию 8 или 16 оказываются удобнее, чем обычная десятичная система. Позиционная система счисления по основанию 8 называется восьмеричной (octal). В ней используются цифры от 0 до 7. Числа в восьмеричной системе раскладываются по степеням числа 8. Система счисления с основанием 16 называется шестнадцатеричной (hexadecimal). В ней используются иифры от 0 до 9 и буквы от А до F, которые соответствуют числам 10, 11, 12, 13, 14 и 15. Например, шестнадцатеричное число 10 в десятичной системе равно 16. Поскольку эти системы счисления применяются очень часто, в языке C/C++ предусмотрены средства для представления шестнадцатеричных и восьмеричных констант. Для этого перед шестнадцатеричным числом указывается префикс Ох. Восьмеричные константы начинаются с нуля. Рассмотрим несколько примеров.

iint hex = 0x80; /* 128 в десятичной системе */ int oct = 012; /* 10 в десятичной системе */

Строковые константы

В языке C/C++ есть еще один вид констант — строковые. Строка (string) — это последовательность символов, заключенная в двойные кавычки. Например, “пример строки” — это строка. Мы уже видели примеры использования строк, когда применяли функцию printf (). Несмотря на то что в языке С можно определять строковые константы, строго говоря, в нем нет отдельного типа данных для строк. (В то же время, в языке C++ сушествует стандартный класс string.)

Не следует путать символы и строки. Отдельная символьная константа заключается в одинарные кавычки, например 'а'. Если заключить букву а в двойные кавычки, получим строку "а", состоящую из одной буквы.