char a[]="liyang";//这一行的理解可以是将字符串常量赋值给了字符数组a[0]='L';//所以这句是对的。当char *a="liyang";//这一样相当于是将字符串常量的首地址给了a,然后通过a来修改字符串常量是错误的。本质上字符串常量是不能修改的。*a='L';