char* s="AAA"; //s是一般的指针,但是存放的是字符串常量首地址 printf("%s",s); s[0]='B';//编译正确,运行出错,因为s[0]='B'试图修改字符串常量,字符串常量不能 修改,一般情况下给字符串常量赋值推荐做法是:const char* s="AAA";这样当编译器发现修改字符串常量内容时,就会直接报错。