[quote=引用 5 楼 zxgmlcj 的回复:] 编译器允许char *p = "ball"这种写法,编译运行都没问题。但"ball"是字符串常量,存储在字符串常量区(只读区),而字符串常量区的数据都是无法改变的,也就是如果你p[0]='d'进行类似的修改操作,则无法运行,出错。而const char *p="ball"这种写法就是为了防止程序员在无意识的情况下修改值。
编译器允许char *p = "ball"这种写法,编译运行都没问题。但"ball"是字符串常量,存储在字符串常量区(只读区),而字符串常量区的数据都是无法改变的,也就是如果你p[0]='d'进行类似的修改操作,则无法运行,出错。而const char *p="ball"这种写法就是为了防止程序员在无意识的情况下修改值。
你可以用 char bar[] = xxxx
char* p = "123"; p[0] = 'a';
const char* p = "123"; p[0] = 'a';
33,311
社区成员
41,784
社区内容
加载中
试试用AI创作助手写篇文章吧