Как говорят другие ответы, const является стандартным.Единственные проблемы, с которыми вы столкнетесь, - это неправильное использование.Указатель const может быть хитрым.Убедитесь, что вы используете правильную вещь:
См. Статью в Википедии о правильности const:
Для типов указателей и ссылок синтаксис немного более тонкий.Указатель может быть объявлен как константный указатель или указатель на константный объект (или оба).Указатель const нельзя переназначить, чтобы он указывал на объект, отличный от того, которому он был изначально назначен, но его можно использовать для изменения объекта, на который он указывает (называемого "pointee").Таким образом, ссылочные переменные являются альтернативным синтаксисом для константных указателей.С другой стороны, указатель на const-объект может быть переназначен для указания на другой объект того же типа или преобразуемого типа, но его нельзя использовать для изменения какого-либо объекта.Константный указатель на константный объект также может быть объявлен и не может использоваться ни для изменения указателя, ни для переназначения для указания на другой объект.Следующий код иллюстрирует эти тонкости:
void Foo( int * ptr,
int const * ptrToConst,
int * const constPtr,
int const * const constPtrToConst )
{
*ptr = 0; // OK: modifies the pointee
ptr = 0; // OK: modifies the pointer
*ptrToConst = 0; // Error! Cannot modify the pointee
ptrToConst = 0; // OK: modifies the pointer
*constPtr = 0; // OK: modifies the pointee
constPtr = 0; // Error! Cannot modify the pointer
*constPtrToConst = 0; // Error! Cannot modify the pointee
constPtrToConst = 0; // Error! Cannot modify the pointer
}