这样的声明:
char* string = "Test";
是否带有一些隐式常量?
我想知道接下来的例子是否有意义。
const char* string = "Test";
char* const string = "Test";
const char* const string = "Test";
最佳答案
char* string = "Test";
不要那样做。这应该会产生一个警告,因为它实际上是一个静态字符串,但事实并非如此。如果您写入字符串,它将爆炸。
const char* string = "Test";
正确。
char* const string = "Test";
不正确。这意味着 string
指针不能改变,但它的内容可以,这除了错误之外不是很有用。
const char* const string = "Test";
正确。现在 string
指针及其内容都不能改变。我很少在 *
的右侧使用 const,但它有它的用途。
如果你真的想要一个可写的字符串使用
char string[] = "Test";
关于C 语言 - 默认情况下静态初始化字符串是否以任何方式 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172711/