Спецификатор const
помечает объект как неизменяемый, то есть «только для чтения», но вы наверняка знали, что.
char ** strings;
strings
- это изменяемый указатель наизменяемый указатель на изменяемый символ.Ни один из них не является const
очевидно.
const * char * strings;
синтаксически неверен.
char * const * strings;
strings
является изменяемым указателем на неизменяемый указатель наизменяемый символ.
const char ** strings;
strings
- это изменяемый указатель на изменяемый указатель на неизменяемый символ.
Это имеет смысл, если вам нужна такая переменная.