ТЕМА 2. ЯЗЫК ПРОГРАММИРОВАНИЯ С++. ТИПЫ ДАННЫХ, ОПЕРАЦИИ, СТРУКТУРА ПРОГРАММЫ (4 ЧАСА)
2.1. Типы данных
Тип данных определяет характеристики объекта: внутреннюю структуру, размер выделяемой памяти, множество значений и доступные операции над ним. Условно типы можно разделить на две категории:
- простые или базовые типы;
- производные типы.
Следующие типы относятся к базовым:
void - пустой тип, используется для создания указателей и указания того, что функция не возвращает значений;
int - целочисленный тип. Этот тип является типом по умолчанию. Размер типа int не определяется стандартом, он аппаратно зависимый, т.е. зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного — 4 байта, 64-разрядного 8 байт;
bool - логический тип. Значение 0 означает ложь, ненулевое значение истину;
char - символьный тип. Также этот тип может использоваться как целочисленный тип, к нему применимы спецификаторы знака;
wchar_t - аналогично предыдущему, но для юникод символов;
long long - тип для 64-битных целых чисел. В стандарте С99 (версия была принята 15.11.2007) появились новые для С типы данных long long int и unsigned long long int. Диапазон значений типа данных long long int не уже, чем интервал от -(263-1) до (263-1). А диапазон значений типа данных unsigned long long int обязан содержать интервал от 0 до (264-1). Типы long long позволяют поддерживать 64-разрядные целые значения с помощью встроенного типа.
float - тип для вещественных чисел;
double - тип для вещественных чисел двойной точности;
Типы int, bool, char, wchar_t, long long называют целочисленными (целыми), типы float и double –типами с плавающей точкой (вещественными).
Существует четыре спецификатора (модификатора) типа, уточняющих внутреннее представление и диапазон значений стандартных типов.
Имена целочисленных типов могут использоваться в сочетании с парой модификаторов типа:
- signed (знаковый);
- unsigned (беззнаковый).
Модификатор типа signed указывает, что переменная может принимать как положительные, так и отрицательные значения.
Модификатор типа unsigned указывает, что переменная принимает неотрицательные значения.
По умолчанию все переменные целого типа считаются signed.
Спецификторы размера short (короткий) и long (длинный) уточняют размер: два байта и четыре соответственно вне зависимости от разрядности процессора.
Для хранения значения типа char используется один байт. Соответственно переменная данного типа может хранить 256 значений. Данный тип используется для хранения символов. Чтобы числа преобразовывать в символы используется таблица ASCII. Первоначально она содержала 128 значений - от нуля до 127, то есть в байте не использовался один бит. В таком виде таблица символов хранила буквы латинского алфавита и ряд дополнительных символов. Для национальных алфавитов (греческий, русский) используется расширенная таблица ASCII, где символы нумеруются от 0 до 255.
-
Тип
Диапазон значений
Размер (байт)
bool
true и false
1
signed char
-128 ...127
1
unsigned char
0...255
1
signed short int
-32 768 ... 32 767
2
unsigned short int
0 ... 65 535
2
signed long int
-2 147 483 648 ... 2 147 483 647
4
unsigned long int
0 ... 4 294 967 295
4
long long
-(263-1) до (263-1)
8
unsigned long long
0…(264-1)
8
float
3.4е-38... 3.4е+38
4
double
1.7е-308... 1.7е+308
8
long double
3.4е-4932 ... З.4е+4932
10
Производные типы можно условно подразделить на две группы:
1) скалярные производные типы. Эти типы являются производными от некоторых существующих типов, реализуя типы указателей, ссылки, перечисления. В группу скалярных производных типов входят:
- указатели;
- ссылки;
- перечисления;
2) составные производные типы. В группу составных производных типов входят:
- массивы;
- классы;
- структуры;
- объединения.
