Типы данных в С++
Поговорим об основах - типах данных в языке С++. Самые популярные типы данных по группам:
- числовые
- логические
- символьные
- пользовательские
Теперь давайте поподробнее разберем каждую из групп.
Числовые типы данных
Рассмотрим самые популярные числовые типы:
int
- хранит целые числа, весит 4 байта, вмещает числа в диапазоне от -2 147 483 648 до 2 147 483 647long long
- хранит целые числа, весит 8 байт, вмещает числа в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807float
- хранит вещественные числа одинарной точности с плавающей точкой в диапазоне +/- 3.4E-38 до 3.4E+38. В памяти занимает 4 байтаdouble
- хранит вещественные числа двойной точности с плавающей точкой в диапазоне +/- 1.7E-308 до 1.7E+308. В памяти занимает 8 байтunsigned int
- хранит целое положительное число, весит 4 байта, вмещает числа в диапазоне от 0 до 4 294 967 295unsigned long long
- хранит целое положительное число, весит 8 байт, вмещает числа в диапазоне от 0 до 18 446 744 073 709 551 615
Логический тип данных
Логический тип bool
может хранить одно из двух значений: true (истинно, верно) и false (неверно, ложно).
При выводе значения типа
bool
преобразуются в 1 (если true) и 0 (если false). Значение по умолчанию для переменных этого типа - false. Как правило, данный тип применяется преимущество в условных выражениях.
Символьный тип данных
char
- символьный тип данных в C++. Весит 1 байт и имеет диапазон от 0 до 225 (или от -128 до 127 signed) и обозначает номер отображаемого символа в таблице ASCII. Модифицируется с помощью signed/unsigned.
Пользовательские типы данных
Иногда нам может не хватить функционала встроенных типов данных. Например, мы хотели бы создать некого студента и хранить его имя, группу и средний балл по алгоритмам. Это можно было бы реализовать, создавая для каждого студента 3 отдельные переменные и хранить у себя в голове, какая переменная к какому относится. Очевидно, что это максимально неудобно, и тут нам и придут на помощь пользовательские типы данных.
С помощью структур и некоторых других пользовательских типов мы можем объединять различные данные, которые хотим связать вместе.
Мы знаем, что хотим для каждого студента хранить одни и те же параметры. Мы создадим структуру студента и в поля структуры запишем нужные параметры, а дальше просто будем создавать экземпляры студентов, которые будут иметь одинаковые параметры, которые еще и будут привязаны к каждому из студентов.
#include <iostream>
struct student {
int age;
std::string name; // имя храним в строке, строки разберем немного позже
int average_points;
};
int main() {
person first_student;
first_student.name = "Tom";
first_student.age = 34;
first_student.average_points = 25;
std::cout << "Name: " << first_student.name << "\tAge: " << first_student.age
<< "Average pts: " << first.student << std::endl;
}
Подробнее о структурах, классах и других пользовательских типах вы узнаете чуть позже, в отдельном разделе, посвященном этому!