c语言中将一个数组的值赋给另外一个数组,好像要用指针来赋值

这两都不是字符型数组... 这两都不是字符型数组 展开
 我来答
大宝妈谈教育
高粉答主

2020-04-04 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:51.4万
展开全部

错误的,不能用赋值语句将一个字符串常量直接给一个字符数组赋值。

chars[20];

charss[]="hello";

s=ss;错误原因是:是您不能使用赋值语句将一个字符数组直接赋值给一个字符串数组,也就是说,必须使用strcpy()函数来实现一个字符串的副本(在c语言中,但是在c++的string类中,上面的赋值是正确的)。

因为赋值字符“=”右边的表达式也可以是赋值表达式,下面的形式变量是=(变量=表达式);这是真的,所以它是嵌套的。展开后的一般形式为:variable=variable=…=表达式;例如:a=b=c=d=e=5;根据赋值运算符的正确啮合,其有效等价为:e=5;D=e;C=d.B=C.A=B;

Chara[]="toyou";正确的理由:因为当你声明一个数组变量时,你只是为它腾出空间并初始化它,这是c语法。

扩展资料:

C语言中字符串赋值的理解

一、指针式赋值

上面的例子很明显,也很容易理解。但是下面的方法有点难以理解。

通过程序的运行,我们可以知道:char*p="hello";这个字符串赋值非常好。为了理解这个赋值,我们首先需要理解双引号在这个语句中的作用(注意:这是双引号,不要使用单引号)。双引号有三个主要作用:

(1)申请了空间(在常量区),存放了字符串。

(2)在字符串尾加上了“\0”。

(3)返回地址。

这里所返回的地址就赋值给了char*类型的指针变量p。

二、通过字符数组直接把字符串赋值。程序如下:

三、需要注意的一些问题

直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。

百度网友34ea49a
2011-08-05 · TA获得超过894个赞
知道小有建树答主
回答量:297
采纳率:100%
帮助的人:395万
展开全部
把一个数组的全部元素赋给另一个元素,如果是字符数组,用strcpy或strncpy,如果是非字符型数组,可以用memcpy函数
void * memcpy ( void * destination, const void * source, size_t num );

也可以用for loop
int i;
int n = sizeof(a)/sizeof(a[0]);
for(i=0; i<n; i++){
a[i] = b[i];
}

如果必须用指针可以这样
int i = 0;
int n = sizeof(a)/sizeof(a[0]);
while(i < n){
*p1++ = *p2++;
i++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
推荐于2017-10-06 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4547万
展开全部
//用不用都可以。
#include "stdio.h"
void main()
{
int a[]={0,1,2,3,4,5,6,7,8,9},b[10],c[10];
int i,*p=a;
for(i=0;i<10;i++)
b[i]=a[i]; //不用指针赋值。
for(i=0;i<10;i++)
c[i]=*(p+i); //用指针赋值。
for(i=0;i<10;i++)
printf("%d ",b[i]);
printf("\n");
for(i=0;i<10;i++)
printf("%d ",c[i]);
printf("\n");

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫树白
2011-08-05
知道答主
回答量:9
采纳率:0%
帮助的人:1.5万
展开全部
这要看情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式