"Hello-World!" 的类型是 const char [13],是个 literal
所以正确的写法是
const char (&mystring)[13] = "hello-world!";
考虑到数组可隐式降级为指针,下面两种也是合法的
const char* s = "hello-world!";
char* s = "hello-world!"; // 在过去是合法的(但*s是未定义行为),在新标准中已经禁止了
不是转化而是赋值的话,正确的还有
char mystring[13] = "hello-world!";
const char mystring[13] = "hello-world!";
char mystring[] = "hello-world!";
const char mystring[] = "hello-world!";
char mystring[任意大于等于13的数值] = "hello-world!";
const char mystring[任意大于等于13的数值] = "hello-world!";