c语言char数组赋值提示 error: assignment to expression with array type

一、原因

一、解决办法

关于这个赋值失败提示 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这个地址去

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值