Что такое литералы?
В следующем примере 1 и Кот это литералы, а a1, c и cat — переменные:
int a1 = 1;
int c = a1;
string cat = "Кот";
Если "Литерал" это фиксированное значение, то зачем это терминология когда есть термин "константа" ?
Ответы (2 шт):
Потому что в программировании константа - это переменная с фиксированнным значением.
В то же время и само значение такой переменной - это в общем-то тоже константа.
Видимо, поэтому, чтобы избежать неоднозначности толкования - о чём же мы всё-таки говорим, когда в программировании произносим термин константа - ввели термин литерал.
Поэтому в программировании обычно понимают так:
константа- это переменная, содержащая фиксированное значение (нонсенс, если подумать - "переменная" и в то же время "фиксированная", но так сложилось)литерал- это само фиксированное значение, которое присваивается переменной-константе или ещё каким-то образом используется в программе (в общем-то не обязательно его куда-то присваивать)
константа и литерал - это разные сущности
константа - это данные, которые нельзя изменять
а литералы - это некоторые числовые или цифровые префиксы и суффиксы, которые описывают данные, хранящиеся в переменных и константах
const float pi = 3.1415; // pi - константа
const float pi = 3.1415f // f - литерал, показывающий, что число 3.1415 имеет тип float
или например в C++11 появились литералы для времени -
auto delta = 250ms;
ms - это литерал
т.е. когда вы используете const - вы говорите компилятору, что значение данной переменной не может быть изменено напрямую (обходы есть, но сейчас не об этом)
а когда вы используете литералы, то вы говорите компилятору как именно интерпретировать данные, которые вы записываете в переменную