Суффиксы типов в C++
Сразу после цифр можно поставить букву.
Ее называют суффиксом. Буква задает
тип самого числа. Например, буква L
задает long:
long num = 100L;
std::cout << num << "\n"; // выведет 100
Буквы LL задают long long:
long long num = 100LL;
std::cout << num << "\n"; // выведет 100
Буква U задает число без знака:
unsigned int num = 50U;
std::cout << num << "\n"; // выведет 50
Буквы U и L можно поставить вместе.
Получается unsigned long. Порядок букв
любой: UL или LU:
unsigned long num = 100UL;
std::cout << num << "\n"; // выведет 100
Буква f задает float:
float num = 3.14f;
std::cout << num << "\n"; // выведет 3.14
Буквы пишут и большими, и маленькими:
unsigned int num = 50u;
std::cout << num << "\n"; // выведет 50
И так тоже:
float num = 3.14F;
std::cout << num << "\n"; // выведет 3.14
Буква не обязательна. Тип уже написан слева, и число в него помещается:
long long num = 100;
std::cout << num << "\n"; // выведет 100
Без буквы целое имеет тип int, если оно
в него входит:
int num = 50;
std::cout << num << "\n"; // выведет 50
Если целое в int не входит, тип числа
сам становится шире: long или
long long:
long long num = 3000000000;
std::cout << num << "\n"; // выведет 3000000000
Дробь без буквы имеет тип double:
double num = 3.14;
std::cout << num << "\n"; // выведет 3.14
Дан следующий код:
long long num1 = 10000000000;
unsigned int num2 = 50;
float num3 = 2.5;
std::cout << num1 << "\n";
std::cout << num2 << "\n";
std::cout << num3 << "\n";
Скажите, соберется ли этот код без суффиксов.
Какой тип у числа 50, если буквы
после него нет?
Какой тип у числа 3.14, если буквы
после него нет?
Какой тип у записи 50U?
Какой тип у записи 3.14f?
Какой тип у записи 100LL?
Какой тип у записи 100UL?