Ключевое слово auto

При объявлении переменной вместо конкретного типа данных можно указать ключевое слово auto. В этом случае тип переменной будет определяться компилятором динамически на основе контекста при инициализации:

// #include <typeinfo>
using namespace std;
auto a = true;                     // Тип bool
cout << typeid(a).name() << endl;  // b
auto ch = 'w';                     // Тип char
cout << typeid(ch).name() << endl; // c
auto x = 10;                       // Тип int
cout << typeid(x).name() << endl;  // i
auto y = 10.5;                     // Тип double
cout << typeid(y).name() << endl;  // d
auto z = 10L;                      // Тип long int
cout << typeid(z).name() << endl;  // l
auto k = 10LL;                     // Тип long long int
cout << typeid(k).name() << endl;  // x

В одной инструкции можно объявить сразу несколько переменных, указав их через запятую после ключевого слова auto, но типы данных этих переменных должны совпадать, иначе будет ошибка на этапе компиляции:

auto x = 20, y = 5;       // OK
// auto z = 20, k = 5.2;  // Ошибка! Переменные z и k разного типа!
// error: inconsistent deduction for 'auto': 'int' and then 'double'
std::cout << x << std::endl; // 20
std::cout << y << std::endl; // 5

Тип определяется при инициализации, поэтому так написать нельзя:

auto x;                    // Ошибка! Так нельзя!
x = 10;
На заметку

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов