Правильно ли следующий код?
constexpr char s[] = "a, bb, ccc";
static const char * s1 = s;
char * s2 = const_cast<char *>(s1);
s2[5] = 'x';
Моя первая идея состояла в том, что 's' существует только во время компиляции и 's1', вероятно, является своего рода копией 's', но, вероятно, этоне совсем корректно, потому что строка 2 не компилируется без 'const':
static char * s1 = s;
Ошибка с MSCV2017: «инициализация»: невозможно преобразовать из «const char [11]» в «char [11]'.
, поэтому неясно, какова связь между' s 'и' s1 '?Они ссылаются на один и тот же строковый литерал?