if something is const then it's a compiler error to try and change it. So a const variable parameter can only be set when a function is called, and not changed inside the function. in this case, they're still stored as normal variables, but it's just illegal to write code that tries and change them. So, const can be good to ensure a value never gets changed by accident if it shouldn't.
However, it has another use. If you write literal values into the program:
const int max_size = 256;
^ unlike a normal int, this gets compiled down to a literal value of 256 in machine code wherever it's used. Otherwise, variables are pointers which need to get dereferenced to a real value whenever they're used. So putting const for literal values like this reduces executable size and speeds up the program.
In more recent C++ versions, there's also const methods for a class:
void MyClass::MyMethod() const;
^ adding const like this means the whole method is const. For these, it's disallowed to change any values in the object within this method. It's basically a guarantee for that method that "this method is a data-retriever only, and does not change the object's state". Also, if you make two copies of the same method, one with const and one without, then for a const object, it will use the const version of the method. Which could be handy I guess, but I've never used it.