一、原因
一、解决办法
关于这个赋值失败提示 error: assignment to expression with array type,是我在写链表时给结构体赋值发现的,编译的时候提示了这个:
原因:
(1)数组不能直接给数组赋值
(2)指针不能直接给数组赋值
如下是几种常见的指针与数组间的赋值问题:
char a[] = {'a','b','c'}; char b[3]; >char c[3] = a; //错误---》数组不能直接给数组赋值 char d[3] = p; //错误---》指针不能直接给数组赋值 char *p = a; //正确赋值,数组名为数组首元素地址,因此可使用指针保存该地址(指针只能保存地址) strcpy(b,a); //正确,使用标准库函数可实现字符串拷贝 char **p1 = &p; //正确,二级指针可接收一级指针的地址
解决办法:
在这个地方可以使用strcpy()/strncpy这个函数把一个地址上的数据复制到另一个地址上去
函数原型:
#include <string.h>
char *strcpy(char *dest, const char *src);
用法:把src这个地址的地址的字符串赋值到dest这个地址去
char *strncpy(char *dest, const char *src, size_t n);
用法:把src这个地址的地址的n个字符串赋值到dest这个地址去