Типы данных в C++: int, double, bool, char, string

Тип данных отвечает на простой вопрос: что именно лежит в переменной. Число? Дробь? Текст? Один символ? Правда или ложь?

В C++ типы особенно важны, потому что язык проверяет их во время компиляции. Это делает старт чуть строже, зато помогает раньше ловить ошибки

int: целые числа

int age = 25;
int lessons = 10;
int balance = -300;

int подходит для целых чисел: возраст, количество уроков, номер заказа, счетчик

Вывод:

std::cout << age << std::endl;

double: дробные числа

double price = 1499.90;
double rating = 4.8;

double используют для чисел с дробной частью

Пример:

int count = 3;
double price = 1499.90;
double total = count * price;

Для денег в настоящих финансовых системах есть дополнительные нюансы точности, но для учебного старта double подходит

bool: правда или ложь

bool isPaid = true;
bool hasDiscount = false;

bool хранит только два значения: true или false

if (isPaid) {
    std::cout << "Заказ оплачен" << std::endl;
}

Такой код читается почти как английская фраза

char: один символ

char grade = 'A';

char хранит один символ. Символ пишется в одинарных кавычках

char letter = 'X';

Не путай:

char letter = 'A';
std::string word = "A";

Первое — символ, второе — строка

string: текст

Для std::string нужно подключить:

#include <string>

Пример:

std::string name = "Анна";
std::string product = "Курс по C++";

Строка пишется в двойных кавычках

Полный пример:

#include <iostream>
#include <string>

int main() {
    std::string name = "Анна";
    int lessons = 5;

    std::cout << name << " прошла уроков: " << lessons << std::endl;

    return 0;
}

Ввод разных типов

#include <iostream>
#include <string>

int main() {
    std::string name;
    int age;

    std::cout << "Введите имя: ";
    std::cin >> name;

    std::cout << "Введите возраст: ";
    std::cin >> age;

    std::cout << name << ", возраст: " << age << std::endl;

    return 0;
}

std::cin >> name читает до пробела. Если нужно имя с пробелами, понадобится std::getline, но это отдельная тема

Приведение типов

Проблема:

int total = 5;
int count = 2;

double average = total / count;

Результат будет 2, а не 2.5, потому что делятся два int

Исправление:

double average = static_cast<double>(total) / count;

Теперь результат будет дробным

Маленькая программа

#include <iostream>
#include <string>

int main() {
    std::string product = "Книга";
    int count = 3;
    double price = 1200.50;
    bool isPaid = true;
    char grade = 'A';

    double total = count * price;

    std::cout << "Товар: " << product << std::endl;
    std::cout << "Количество: " << count << std::endl;
    std::cout << "Итого: " << total << std::endl;
    std::cout << "Оплачен: " << isPaid << std::endl;
    std::cout << "Оценка: " << grade << std::endl;

    return 0;
}

bool при обычном выводе может показаться как 1 или 0. Если хочется текст:

if (isPaid) {
    std::cout << "Оплачен: да" << std::endl;
} else {
    std::cout << "Оплачен: нет" << std::endl;
}

Частые ошибки

Строка в одинарных кавычках

Неправильно:

std::string name = 'Анна';

Правильно:

std::string name = "Анна";

Дробь в int

int price = 1499.90;

Дробная часть потеряется. Используй double

Забыли include string

Если используешь std::string, подключи <string>

Сравнивают разные типы без понимания

C++ может преобразовывать типы, но лучше делать это явно, когда результат важен

Мини-задание

Создай программу профиля ученика:

  • имя: std::string;
  • возраст: int;
  • средний балл: double;
  • активен ли курс: bool;
  • оценка: char.

Выведи все значения в консоль

Ответы на эти вопросы могут быть для вас полезными

Что такое тип данных в C++?

Это описание того, какие значения может хранить переменная и какие операции с ними допустимы

Когда использовать int?

Когда нужны целые числа: счетчики, количество, возраст, индексы

Когда использовать double?

Когда нужна дробная часть: цена, среднее, коэффициент, процент

Чем char отличается от string?

char — один символ в одинарных кавычках. std::string — строка текста в двойных кавычках

Почему C++ строгий к типам?

Потому что типы проверяются компилятором. Это помогает ловить часть ошибок до запуска программы

Что почитать дальше по C++

Чтобы тема складывалась в понятный маршрут, рядом лучше открыть:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x