Типы данных в C++
К данным относится любая информация, представленная в таком виде, который позволяет автоматизировать её сбор, хранение и обработку в ЭВМ (числа, символы, биты и др.).
Данные в программе могут быть исходными (задаваемыми на входе программы) или результатами обработки (промежуточными или выходными).
Все данные - переменные и константы - принадлежат определенному типу.
С каждым типом данных связан свой диапазон значений ( количество байт под одно значение) и допустимые операции.
Типы данных в C/C++ разделяются на основные и производные.
К основным типам относят:
Символьный тип может быть со знаком или без знака.
В величинах со знаком signed char можно хранить значения в диапазоне от -128 до 127. Соответственно значения переменных типа unsigned char могут находиться в диапазоне от 0 до 255.
При работе с символьными данными нужно помнить, что если в выражении встречается одиночный символ, он должен быть заключен в одинарные кавычки. Последовательность символов, то есть строка, при использовании в выражениях заключается в двойные кавычки. Например: ‘F’ , ‘3’ , “Иван”, “235”
По умолчанию все целые типы считаются знаковыми, то есть спецификатор signed (знаковый ) можно не указывать.
Спецификатор unsigned (беззнаковый) позволяет представлять только положительные числа.
Длина мантиссы определяет точность числа, а длина порядка его диапазон.
Данные типа float занимают 4 байт, из которых 1 двоичный разряд отводится под знак, 8 разрядов - под порядок и 23 - под мантиссу. По-скольку старшая цифра мантиссы всегда равна 1, она не хранится.
Данные типа double занимают 8 байт, в них под порядок -11 разрядов и под мантиссу -52 разряда соответственно.
Спецификатор типа long перед именем типа double указывает, что под величину отводится 10 байт.
Тип void используется для:
У переменной есть имя (идентификатор) и значение.
Имя служит для обращения к области памяти, в которой хранится значение.
Имя (идентификатор) - это совокупность букв, цифр и знаков подчёркивания, задающая имя переменной, название функции или ключевое слово в программе. Язык С/C++ чувствителен к регистру ( т.е. Sum и sum будут восприниматься как две разные переменные).
где, тип – ключевое слово, определяющее объём памяти (число байтов), выделенный для хранения значения переменной (как объекта программы), (int – целый, float, double – вещественный, char – символьный, bool - логический);
имя – уникальный идентификатор переменной, задающий символический адрес объекта программы в памяти ЭВМ;
инициатор – начальное значение переменной, которое может отсутствовать в описании.
Например: Однотипные переменные можно сгруппировать, разделив «,». Описание переменных разного типа разделяется « ; ».
По месту обьявления переменные в языке С/С++ можно разделить на три класса:
Данные в программе могут быть исходными (задаваемыми на входе программы) или результатами обработки (промежуточными или выходными).
Все данные - переменные и константы - принадлежат определенному типу.
С каждым типом данных связан свой диапазон значений ( количество байт под одно значение) и допустимые операции.
К основным типам относят:
- void (пустой тип),
- int (целый тип),
- float (вещественные числа с плавающей точкой),
- double (вещественные числа с плавающей точкой двойной точности),
- char (символьный тип),
- bool - логический.
Составные типы
Для формирования других типов данных используют основные типы + так называемые спецификаторы. Типы данных, созданные на базе стандартных типов с использованием спецификаторов, называют составными типами данных. В C++ определены четыре спецификатора типов данных:- short - короткий;
- long - длинный;
- signed-знаковый;
- unsigned-беззнаковый.
- массивы,
- функции,
- классы,
- указатели,
- ссылки,
- структуры ,
- объединения.
Символьный тип
Данные типа char в памяти компьютера всегда занимают 1 байт. Это связано с тем, что обычно под величину символьного типа отводят столько памяти, сколько необходимо для хранения любого из 256 символов клавиатуры.Символьный тип может быть со знаком или без знака.
В величинах со знаком signed char можно хранить значения в диапазоне от -128 до 127. Соответственно значения переменных типа unsigned char могут находиться в диапазоне от 0 до 255.
Тип данных | Диапазон значений | Размер |
---|---|---|
char | -128...+127 | 1 байт |
unsigned char | 0...255 | 1 байт |
signed char | -128...127 | 1 байт |
При работе с символьными данными нужно помнить, что если в выражении встречается одиночный символ, он должен быть заключен в одинарные кавычки. Последовательность символов, то есть строка, при использовании в выражениях заключается в двойные кавычки. Например: ‘F’ , ‘3’ , “Иван”, “235”
Целочисленный тип
Данные типа int в памяти компьютера могут занимать либо 2, 4 или 8 байт. Это зависит от разрядности процессора.По умолчанию все целые типы считаются знаковыми, то есть спецификатор signed (знаковый ) можно не указывать.
Спецификатор unsigned (беззнаковый) позволяет представлять только положительные числа.
Диапазоны значений целочисленных типов
Тип данных | Диапазон значений | Размер(байт) |
---|---|---|
int signed int signed long int |
-2147483648 ... 2147483647 | 4 |
unsigned int unsigned long int |
0 ... 4294967295 | 4 |
short int signed short int |
-32768 ... 32767 | 2 |
unsigned short int | 0... 65535 | 2 |
long long int | \(-(2^{63}-1)...(2^{63}-1)\) | 8 |
unsigned long long int |
\(0...(2^{64}-1)\) | 8 |
Вещественный тип
Внутреннее представление вещественного числа в памяти компьютера отличается от представления целого числа. Число с плавающей точкой представлено в экспоненциальной форме. $$\pm mE\pm p$$ где m - мантисса (целое или дробное число с десятичной точкой), р- порядок (целое число). Для того чтобы перевести число в экспоненциальной форме к обычному представлению с фиксированной точкой, необходимо мантиссу умножить на десять в степени порядок Например: \(-6.42E+2=-6,42*10^{2}\)Диапазоны значений вещественных типов
Тип данных | Диапазон значений | Размер (байт) |
---|---|---|
float | 3.4E-38 ... 3.4E+38 | 4 |
double | 1.7E-308... 1.7E+308 | 8 |
long double | 3.4E-4932 ... 3.4E+4932 | 10 |
Длина мантиссы определяет точность числа, а длина порядка его диапазон.
Данные типа float занимают 4 байт, из которых 1 двоичный разряд отводится под знак, 8 разрядов - под порядок и 23 - под мантиссу. По-скольку старшая цифра мантиссы всегда равна 1, она не хранится.
Данные типа double занимают 8 байт, в них под порядок -11 разрядов и под мантиссу -52 разряда соответственно.
Спецификатор типа long перед именем типа double указывает, что под величину отводится 10 байт.
Логический тип
Переменная типа bool может принимать только два значения true (истина) или false (ложь). Любое значение, не равное нулю, интерпретируется как true, а при преобразовании к целому типу принимает значение, равное 1. Значение false представлено в памяти как 0.Тип void (пустой)
Множество значений этого типа пусто.Тип void используется для:
- определения функций, которые не возвращают значения;
- для указания пустого списка аргументов функции;
- как базовый тип для указателей;
- в операции приведения типов.
Объявление переменных
Переменная - это поименованный участок памяти, в котором хранится значение определенного типа.У переменной есть имя (идентификатор) и значение.
Имя служит для обращения к области памяти, в которой хранится значение.
Имя (идентификатор) - это совокупность букв, цифр и знаков подчёркивания, задающая имя переменной, название функции или ключевое слово в программе. Язык С/C++ чувствителен к регистру ( т.е. Sum и sum будут восприниматься как две разные переменные).
где, тип – ключевое слово, определяющее объём памяти (число байтов), выделенный для хранения значения переменной (как объекта программы), (int – целый, float, double – вещественный, char – символьный, bool - логический);
имя – уникальный идентификатор переменной, задающий символический адрес объекта программы в памяти ЭВМ;
инициатор – начальное значение переменной, которое может отсутствовать в описании.
Например: Однотипные переменные можно сгруппировать, разделив «,». Описание переменных разного типа разделяется « ; ».
По месту обьявления переменные в языке С/С++ можно разделить на три класса:
- локальные- объявляются внутри функции и доступны только в ней;
- глобальные - описываются до всех функций и доступны из любого места программы;
- формальные параметры функций описываются в списке параметров функции.
Комментарии
Отправить комментарий