Типы данных в С++

Поговорим об основах - типах данных в языке С++. Самые популярные типы данных по группам:

  • числовые
  • логические
  • символьные
  • пользовательские

Теперь давайте поподробнее разберем каждую из групп.

Числовые типы данных

Рассмотрим самые популярные числовые типы:

  • int - хранит целые числа, весит 4 байта, вмещает числа в диапазоне от -2 147 483 648 до 2 147 483 647
  • long long - хранит целые числа, весит 8 байт, вмещает числа в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
  • float - хранит вещественные числа одинарной точности с плавающей точкой в диапазоне +/- 3.4E-38 до 3.4E+38. В памяти занимает 4 байта
  • double - хранит вещественные числа двойной точности с плавающей точкой в диапазоне +/- 1.7E-308 до 1.7E+308. В памяти занимает 8 байт
  • unsigned int - хранит целое положительное число, весит 4 байта, вмещает числа в диапазоне от 0 до 4 294 967 295
  • unsigned 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;
}

Подробнее о структурах, классах и других пользовательских типах вы узнаете чуть позже, в отдельном разделе, посвященном этому!

Last change: 2023-09-27, commit: 3f8b5e1