Типы данных С++
Любая программа в ходе работы обрабатывает данные. Хранение и обработка данных зависит от их типа. Каждая константа, переменная, результат вычисления выражения или функции должны иметь определенный тип.
Тип данных определяет:
- представление данных в памяти компьютера;
- множество значений, которые могут принимать величины данного типа;
- операции и функции, которые можно применять к величинам этого типа.
Все типы языка C++ можно разделить на основные и составные. Основные типы данных используются для представления целых, вещественных, символьных и логических величин. К составным типам относятся массивы, перечисления, функции, структуры, ссылки, указатели, объединения и классы.
Основные типы данных
Для описания основных типов данных определены следующие ключевые слова:
- int (целый);
- char (символьный);
- wchar_t (расширенный символьный);
- bool (логический);
- float (вещественный);
- double (вещественный с двойной точностью).
Для уточнения диапазона значений и внутреннего представления стандартных типов применяются четыре спецификатора типа:
- short (короткий);
- long (длинный);
- signed (знаковый);
- unsigned (беззнаковый).
Типичные размеры значений и диапазоны представлений
Тип | Размер (байт) | Диапазон значений | Замечания |
---|---|---|---|
bool | 1 | true, false | Внутренняя форма представления значения false - 0. Любое другое значение интерпретируется как true. |
signed char | 1 | -128 ... 127 | Используются для хранения 8-разрядных ASCII-символов либо любых других 8-разрядных значений |
unsigned char | 1 | 0 ... 255 | |
signed short int | 2 | -32768 ... 32767 | Спецификатор signed указывает рассматривать старший бит числа как знаковый (0 - положительное число, 1 - отрицательное). По умолчанию целочисленные типы считаются знаковыми (спецификатор signed можно опускать). При использовании спецификатора unsigned старший разряд рассматривается как часть кода числа, поэтому представляются только положительные числа. |
unsigned short int | 2 | 0 ... 65535 | |
signed long int | 4 | -2 147 483 648 ... 2 147 483 647 | |
unsigned long int | 4 | 0 ... 4 294 967 295 | |
float | 4 | 3.4e-38 ... 3.4e+38 | Типы данных с плавающей точкой. Эти типы хранятся в памяти компьютера иначе, чем целочисленные: представление вещественного числа состоит из двух частей — мантиссы и порядка. Константы с плавающей точкой имеют по умолчанию тип double. |
double | 8 | 1.7e-308 ... 1.7e+308 | |
long double | 3.4e-4932 ... 3.4e+4932 |
Константам, встречающимся в программе, компилятор приписывает тот или иной тип в соответствии с их видом. Можно явно указать требуемый тип с помощью соответствующих суффиксов:
- Для целых типов:
L, l (long) и u, U (unsigned). Например, 50L будет иметь тип long. Суффиксы L и U можно использовать одновременно, например: 105LU. - Для вещественных типов:
F, f (float) и L, l (long). Например, константа 3e+5L будет иметь тип long double, а константа 1.82f — тип float.
Тип void
К основным типам языка С++ относится также тип void. Множество значений этого типа пусто. Он применяется для определения функций, которые не возвращают значения, для указания пустого списка аргументов функции, как базовый тип для указателей и в операции приведения типов.