Да, это совершенно верно.
A const char *
означает, что содержимое, на которое указывает указатель, является постоянным, но это не мешает указателю быть назначенным другому указателю, поскольку это не меняет указанное содержимоепо оригинальному указателю.
Это дает вам два указателя, указывающие на одну и ту же область памяти.
|----------|
| c1 |
| | 1000
| 2000 |
|----------|
|
|
|
|
-------------------->|----------|
| num |
-------------------->| | 2000
| | 2 |
| |----------|
|
|
|----------|
| c2 |
| | 3000
| 2000 |
|----------|
Вы можете взломать и изменить содержимое указателя const char *
, но обратите внимание, что изменение переменной, объявленной как const, приводитв Неопределенное поведение .