Похожие презентации:
ОАиП_Типы_данных
1. Типы данных
Преподаватель: Гущин Павел Алексеевич2. Концепция типа данных
Типданныхопределяет:1. внутреннеепредставлениеданных в памяти
компьютера;
Концепция
типа данных
2. множествозначений, которые могут принимать
величины этого типа;
3. операцииифункции, которые можно применять к
величинам этого типа.
Все типы языка С++ можно разделить на простые
(скалярные), составные(агрегатные) и
функциональные. Простые типы могут быть
стандартными и определенными программистом.
3. Концепция типа данных
В языке С++ определено шесть стандартных простыхтипов данных для представления целых,
вещественных, символьных и логических величин.
Концепция
типа данных
На основе этих типов, а также массивов и указателей
(указатель не является самостоятельным типом, он
всегда связан с каким-либо другим конкретным
типом), программист может вводить описание
собственных простых или структурированных типов.
К структурированным типам относятся перечисления,
функции, структуры, объединения и классы.
4. Простые типы данных
Простые типы делятся на целочисленные типы и типы сплавающей точкой.
Для описания стандартных типов определены
следующие ключевые слова:
Простые типы
данных
1.
2.
3.
4.
5.
6.
int (целый);
char (символьный) ‘a’;
wchar_t (* расширенный символьный);
bool (логический);
float (вещественный);
double (вещественный с двойной точностью).
5. Простые типы данных
Существует четыре спецификатора типа, уточняющихвнутреннее представление и диапазон значений
стандартных типов:
Простые типы
данных
1.
short (короткий);
2.
long (длинный);
3.
signed (со знаком);
4.
unsigned (без знака).
6. Диапазоны значений простых типов данных для IBM PC
ТипДиапазон значений
Размер (байт)
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
float
3.4e–38 .. 3.4e+38
4
double
1.7 e–308 .. 1.7 e+308
8
long double
3.4 e–4932 .. 3.4
e+4932
10
7. Простые типы данных
Символьный типПростые типы
данных
Данные типа char в памяти компьютера всегда
занимают 1 байт. Символьный тип может быть со знаком
или без него. В величинах со знаком
можно
хранить значение от -128 до 127. Соответственно
значения переменных типа
могут
находиться в диапазоне от 0 до 255.
При работе с символьными данными нужно помнить,
что если в выражении встречается одиночный символ, то
он должен быть заключен в одинарные кавычки (‘a’).
8. Расширенный символьный тип
wchar_t: представляет расширенный символ. На Windowsзанимает в памяти 2 байта (16 бит), на Linux - 4 байта (32
бита). Может хранить любой значение из диапазона от 0 до 65
535 (при 2 байтах), либо от 0 до 4 294 967 295 (для 4 байт)
Расширенный
символьный
тип
char8_t: представляет один символ в кодировке Unicode.
Занимает в памяти 1 байт. Может хранить любой значение из
диапазона от 0 до 256
char16_t: представляет один символ в кодировке Unicode.
Занимает в памяти 2 байта (16 бит). Может хранить любой
значение из диапазона от 0 до 65 535
char32_t: представляет один символ в кодировке Unicode.
Занимает в памяти 4 байта (32 бита). Может хранить любой
значение из диапазона от 0 до 4 294 967 295
9. Расширенный символьный тип
wchar_t: представляет Тип wchar_t — это основной тип,предназначенный для наборов символов, размер которых выходит за
пределы одного байта. Собственно отсюда и его название: wchar_t wide (широкий) char. происходит от широкого символа, потому что этот
символ «шире», чем обычный однобайтовый символ. Значения wchar_t
определяются также как и символы char за тем исключением, что они
предваряются префиксом "L":
Расширенный
символьный
тип
Стоит учитывать, что для вывода на консоль
символов wchar_t следует использовать
не std::cout, а поток std::wcout:
При этом поток std:: может работать как с char, так и с wchar_t. А
поток std::cout длwcoutя переменной wchar_t вместо символа будет
выводить его числовой код. символ.
Префиксы для строковых литералов
wchar_t a1 {L'A’};
//задает значение символа ‘A’
// Также можно передать
символа
wchar_t a1 {L'\x41’};
код
char h = 'H';
wchar_t i {L'i'};
std::wcout << h << i <<'\n';
10. Целочисленный тип
Переменная типа int в памяти компьютера можетзанимать либо 2, либо 4 байта. Это зависит разрядности
процессора. По умолчанию все целые типы считаются
знаковыми, то есть спецификатор
можно не
указывать. Спецификатор
позволяет представлять
только положительные числа.
11. Вещественный тип
Число с плавающей точкой представлено в форме mE +p, где m — мантисса (целое или дробное число сдесятичной точкой), p — порядок (целое число).
Обычно величины типа float занимают
4 байта, а double 8 байт.
Таблица диапазонов значений вещественного типа:
float
3,4E-38…3,4E+38
4 байта
double
1,7E-308…1,7E+308
8 байт
long double
3,4E-4932…3,4E+4932
8 байт
12. Логический тип
Переменная типа bool можетпринимать только два значения
(истина) или
(ложь). Любое
значение, не равное нулю,
интерпретируется как
. Значение
представлено в
памяти как .
13. Тип void
Тип void используется для определения функций,которые не возвращают значения, для указания
пустого списка аргументов функции, как базовый тип
для указателей и в операции приведения типов.
14. Спецификатор auto
Иногда бывает трудно определить тип выражения. Вэтом случае можно предоставить компилятору самому
выводить тип объекта. И для этого применяется
спецификатор auto. При этом если мы определяем
переменную со спецификатором auto, эта переменная
должна быть обязательно инициализирована какимлибо значением:
На основании присвоенного значения компилятор
выведет тип переменной. Неинициализированные
переменные со спецификатором auto не допускаются:
auto number = 5;
// number имеет тип int
auto sum {1234.56}; // sum имеет тип double
auto distance {267UL}; // distance имеет тип unsigned
long
auto number;
// ошибка
Программирование