#include <stdio.h> //第一行
int main() //第二行
{ //第三行
char* a = "I am a teacher."; //第四行
*a = 'v'; //第五行
char b[] = "I am a teacher."; //第六行
char* p=b; //第七行
*p = 'v'; //第八行
printf("%s\n", a);
printf("%s\n", b);
return 0;
}
第五行是错误的,因为字符指针变量a指向字符串常量"I am a teacher."的第一个字符,字符串常量是不能改变的。
但是第八行,同样写法是给字符指针变量赋值,为什么第五行错,而第八行却是对的呢?第八行和第五行的格式一样啊,左边都是字符指针变量a(第五行)和p第八行。