产生这个错误的原因:[Error] assignment to expression with array type
字符数组与字符串赋值问题
(1)数组不能直接给数组赋值
(2)指针不能直接给数组赋值
根本原因:
数组名在内存中是一个类似于常量的存在,可以理解为const,在编译的时候就已经给分配的储存位置,在需要使用到数组名时,直接获取的就是一个地址值,因此是不能改变的。
char c[3] = a; //错误---》数组不能直接给数组赋值
char d[3] = p; //错误---》指针不能直接给数组赋值
char *p = a; //正确赋值,数组名为数组首元素地址,因此可使用指针保存该地址(指针只能保存地址)
strcpy(b,a); //正确,使用标准库函数可实现字符串拷贝
char **p1 = &p; //正确,二级指针可接收一级指针的地址