一.本质区别 char* s是一个保存字符串首地址的指针变量,char a[]是许多连续的内存单元,单元中的元素为char类型.之所以用char *能达到char []的效果,还是字符串的本质,即给你一个字符串地址,便可以随心所欲的操作它.但是,char*和char a[]的本质属性是不一样的. 当定义 char a[10] 时,编译器会给数组分配十个单元,每个单元的数据类型为字符.而定义 char* s 时,这是个指针变量,只占四个字节,32位,用来保存一个地址,如: printf("%p&q…