Разница между const и volatile при объявлении переменных в C++ заключается в том, что каждый из этих спецификаторов указывает на разные свойства переменных:
- Спецификатор const предотвращает модификацию переменной во время выполнения программы. 1 Переменные, объявленные с использованием const, не могут изменить свои значения. 1 Однако любой const-переменной можно присвоить начальное значение. 1
- Спецификатор volatile информирует компилятор о том, что переменная может быть изменена внешними (по отношению к программе) факторами. 1 Например, это полезно для объявления объектов в общей памяти, к которым можно получить доступ несколькими процессами, или глобальных областей данных, используемых для взаимодействия с подпрограммами службы прерываний. 3
Спецификаторы const и volatile можно использовать вместе, например, для объявления переменных, которые не могут быть изменены программой, но могут изменяться извне. 14