Структуры данных являются неотъемлемой частью любой программы или про-граммного продукта. При разработке программы необходимо определить множество данных, описывающих конкретную задачу и составить алгоритм решения задачи.

Данные - это просто значения или наборы значений.  Они описывают любую информацию, которую можно обработать на ПК.  Данные характеризуются совокупностью признаков, или атрибутов, в том числе своим значением, смысл которого различен для разных данных.
Важной характеристикой данного является его тип, который определяет множество значений данного и набор операций, которые можно выполнить над этими значениями. Тип данного используется при выборе представления данного в памяти компьютера. На машинном уровне тип данного определяет выбор машинных команд, в выполнении которых участвует это данное. Например, в зависимости от типа слагаемых компилятор во время генерации объектного кода формирует машинную команду сложения с фиксированной точкой или команду сложения чисел с плавающей точкой.

Данные могут быть классифицированы по типам:

1) аналоговые данные – принимают произвольные значения из заданного диапазона и представлены в виде постоянно меняющихся величин;

2) дискретные (цифровые) данные – представлены в дискретном коде в определенной системе исчисления;

3) аналого – цифровые – аналоговые данные, преобразуемые для обработки в цифровой код;

4) двоичные  данные – представленные в двоичном коде;

5) десятичные данные – представленные в десятичном коде;

6) алфавитно – цифровые – текстовые данные, занчения которых представлены в виде знаков алфавита;

7) числовые (арифметические) данные – над которыми можно выполнять арифметические операции.

Система счисления – способ отображения чисел и правила действий над ними.

Все типы языка С++ можно разделить на простые (скалярные), составные (агрегатные) и функциональные. Простые типы могут быть стандартными и определенными программистом.

В языке С++ определено шесть стандартных простых типов данных для представления целых, вещественных, символьных и логических величин. На основе этих типов, а также массивов и указателей (указатель не является самостоятельным типом, он всегда связан с каким-либо другим конкретным типом), программист может вводить описание собственных простых или структурированных типов. К структурированным типам относятся перечисления, функции, структуры, объединения и классы.

Простые типы данных

Простые типы делятся на целочисленные типы и типы с плавающей точкой. Для описания стандартных типов определены следующие ключевые слова:

Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:

Переменные.

Для хранения различных данных в языках программирования используют переменные. Переменной называется область памяти, имеющая имя, которое иначе называют идентификатором. Давая переменной имя, программист одновременно тем же именем называет и область памяти, куда будут записываться значения переменной для хранения.

Переменные объявляют в операторе описания. Оператор описания состоит из спецификации типа и списка имён переменных, разделённых запятой. В конце обязательно должна стоять точка с запятой. Объявление переменной имеет следующий формат:
[модификаторы]  спецификатор_типа  идентификатор  [, идентификатор]. Модификаторы - ключевые слова signed, unsigned, short, long. Спецификатор типа - ключевое слово char или int, определяющее тип объявляемой переменной. Идентификатор - имя переменной.

Константы. Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением ключевого слова const к спецификатору типа. Переменные с типом const представляют собой данные, используемые только для чтения, то есть этой переменной не может быть присвоено новое значение. Если после слова const отсутствует спецификатор типа, то константы рассматриваются как величины со знаком, и им присваивается тип int или long int в соответствии со значением константы: если константа меньше 32768, то ей присваивается тип int, в противном случае long int.

Данные статической структуры характеризуются тем, что взаимное расположение и взаимосвязь элементов структуры всегда остаются постоянными. Данные статической структуры могут быть простыми (скалярными) и составными, которые формируются из простых структур по какому-либо закону. Данные динамической структуры - это данные, внутреннее строение которых формируется по какому-либо закону, но количество элементов, их взаиморасположение и взаимосвязи могут динамически изменяться во время выполнения программы согласно закону формирования. К данным динамической структуры относятся файлы, несвязанные и связанные динамические данные.

Простые типы данных в ЭВМ - это целые, вещественные, символьный и логический тип данных.

В общем случае под целое число можно отвести любое число соседних байт памяти, однако система команд ПК поддерживает работу с числами только размером в байт, слово и  двойное слово (если числа занимают иное количество байтов, то все операции над ними надо реализовывать самому программисту). Поэтому можно считать, в ПК целые числа представляются только байтом, словом или двойным словом. В ПК делается различие между целыми числами без знака (неотрицательные) и со знаком. Это объясняется тем, что в ячейках одного и того же размера можно представить больший диапазон беззнаковых чисел, чем неотрицательных знаковых. Например, в байте можно представить без знаковые числа от 0 до 255, а неотрицательные знаковые числа - только от 0 до 127. Символьные данные хранятся в памяти ПК в виде двоичных кодов. Как правило, используются 8-разрядные коды символов. Конкретное соответствие между символами и их кодами называется системой кодировки. В ПК используется система кодировки ASCII (American Standard Code for Information Interchange -  американский стандартный код для обмена информации). Указатели - это данные, значениями которых являются адреса ячеек памяти. Для представления указателя в памяти обычно выделяется область, равная максимальной длине адреса в соответствующей ВС.