Автовывод типа в C++
Автовывод типа делает слово auto.
Оно число не преобразует, а списывает тип
у значения справа от знака =.
Имя типа слева при этом не пишут.
Запишем целое 27. Справа нет точки,
поэтому auto берет тип int:
auto num = 27;
std::cout << num << "\n"; // выведет 27
Дробь 1.5 справа задает тип double:
auto num = 1.5;
std::cout << num << "\n"; // выведет 1.5
Буква f в конце дроби задает float.
На экране тип не виден, его задает запись справа:
auto num = 3.14f;
std::cout << num << "\n"; // выведет 3.14
Если справа стоит действие, тип берется по правилам
этого раздела. Сложим int и double.
Сумма получает тип double:
int num1 = 5;
double num2 = 2.5;
auto num3 = num1 + num2;
std::cout << num3 << "\n"; // выведет 7.5
Деление двух целых дает int. Слово auto
дробь не возвращает. Хвост пропадает:
int num1 = 5;
int num2 = 2;
auto num3 = num1 / num2;
std::cout << num3 << "\n"; // выведет 2
Если хотя бы одно число дробное, auto спишет
уже double. Поделим 5.0 на 2:
auto num = 5.0 / 2;
std::cout << num << "\n"; // выведет 2.5
Даны две переменные:
int num1 = 7;
int num2 = 2;
Запишите частное в переменную auto
и выведите ее. Будет ли на экране дробь?
Дан следующий код:
auto num = 9.0 / 2;
std::cout << num << "\n";
Скажите, что выйдет на экран.