char* const p="C language\n";
printf("%s", p);
*p = "Change";
printf("%s", p);
Run Code Online (Sandbox Code Playgroud)
预计打印如下内容:
C language
Change
Run Code Online (Sandbox Code Playgroud)
它const char* p = "C language";不是char* const。它们有不同的含义:const char* p表示指向的字符p不能被修改;whilechar* const p表示指针p本身不能被修改。
*p = "Change";不是更改字符串内容的正确方法。即使字符串不是只读的。修改字符串内容的一种方法是使用:strcpy(p, "Change")
您无法修改字符串文字,因为根据定义它们是只读的。但是,您可以声明“char 数组”,并且可以修改它们:
char s[] = "C language";
printf("%s\n", s);
strcpy(s, "Change");
printf("%s\n", s);
Run Code Online (Sandbox Code Playgroud)