C语言中怎么把一维数组赋给另外一个一维数组

能不能将a【10】=b【10】这样赋值。。。... 能不能将a【10】=b【10】这样赋值。。。 展开
 我来答
小耳朵爱聊车
高粉答主

2020-12-29 · 说的都是干货,快来关注
知道大有可为答主
回答量:7378
采纳率:100%
帮助的人:308万
展开全部

可以采用两种方式:

1、按元素赋值:

遍历一维数组,并将每个元素赋值到二维数组的对应元素上。

或者遍历二维数组,将每个元素赋值为一维数组对应值上。

优点为操作灵活,可以按照需要任意赋值。

2、当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。

如一维数组为a,二维数组为b,基础类型为TYPE,需赋值元素个数为n,可以调用

memcpy(b,a,sizeof(TYPE)*n);

该方法有点为操作简单,执行效率高。

不过所需满足的前提条件多。在满足上述所有条件时,用memcpy的方式更为简单。

扩展资料:

C语言中,赋值运算的操作是有方向的,即将右侧表达式的值(也称为右值)赋值左侧的变量,只能是标识一个特定存储单元的变量名。

由于变量名只能出现在赋值运算符的左边,因此它也被称为左值;由于常量只能出现在赋值运算符的右边,因此它也被称为右值。左值可以用作右值,但右值不能用作左值。

结构体的相关操作规则:

1、可以引用一个结构体变量中的一个成员的值:

例如,student1.num表示结构体变量student1中的成员的值,student1.num的值为10001。引用结构体变量中成员的一般方式为:结构体变量名.成员名。例如可以这样对变量的成员赋值:student1.num=10010;

2、不能将一个结构体变量作为一个整体进行输入和输出:

例如,已定义student1和student2为结构体变量,并且它们已有值。不能企图这样输出结构体变量中的各成员的值:cin>>student1;只能对结构体变量中的各个成员分别进行输入和输出。

帐号已注销
2020-12-29 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

不可以,之所以不可以是因为数组名是个常量,它的值是数组首元素地址,即不能将其它值付给这个常量。

可以采用循环的方法逐个复制,或者采用另一个同类型的指针(相对于数组名,指针是变量)指向要复制的数组,之后就可以采用这个指针访问之前的那个数组。

扩展资料:

当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。

一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。数组是计算机编程中的重要概念,运用数组可以方便地处理大规模的数据。

参考资料来源:百度百科-一维数组

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
推荐于2017-09-16 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
有两种方法可以实现。
1 逐个赋值法。
采用循环,逐项赋值。
以整型为例,int a[10], b[10];
要把a的值赋值给b,可以写作
int i;
for(i = 0; i < 10; i ++)
b[i] = a[i];

2 整体复制法。
利用C语言库函数memcpy可以整体复制。memcpy声明与string.h中,形式为
void * memcpy(void *dst, void *src, int length);
其功能为将src地址上长度为length字节的数据,复制到dst上。
于是上一个方法中的例子,可以用
memcpy(b,a,sizeof(a));
来实现相同效果。
代码量较前一个方法更少,同时效率也更高。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
热点那些事儿
高粉答主

2021-01-23 · 关注我不会让你失望
知道大有可为答主
回答量:8668
采纳率:100%
帮助的人:209万
展开全部

不可以,之所以不可以是因为数组名是个常量,它的值是数组首元素地址,即不能将其它值付给这个常量。

可以采用循环的方法逐个复制,或者采用另一个同类型的指针(相对于数组名,指针是变量)指向要复制的数组,之后就可以采用这个指针访问之前的那个数组。

扩展资料

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。

相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。

而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)

合理使用优先级可以极大简化表达式。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
昝米琪07
推荐于2018-05-17 · TA获得超过306个赞
知道小有建树答主
回答量:383
采纳率:0%
帮助的人:204万
展开全部
void main()
{
int a[10]={1,2,3,4,5....};
int b[10];int i;
for(i=0;a[i]!=0;i++)
b[i]=a[i];
}

如果a[10]=b[10] 那么仅仅赋了b{}数组的第11个元素给a[]数组的第十一个元素,没法一次性全部赋给.楼下那个方法也不错.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式