怎样让一个数组等于另一个数组

来源:百度知道 编辑:UC知道 时间:2024/05/15 09:01:11
程序大概是,当满足某个条件之后,让未知一个数组等于已知一个数组,请高手指教!!如;B[3]里的元素等于[A3]里的元素
谢谢大家^^,以下是问题补充
①C或C++
②知道数组长度
③用memcpy解决问题了,由于循环次数较多,多次调用memcpy会不会减慢速度?还是B[i]=A[i]这样直接赋值比较快?

如果直接赋值,让:B=A,这样肯定不可以,结果就是A跟B都操作同一块内存,A里面的数据改动了,B里面也会显现出同样的改动。
让B 等于 A 且不受A影响,就只能 一个一个赋值了.

#include <stdio.h>
#include <memory.h>

main()
{
int A[10],B[5]={1,2,3,4,5};
memcpy(A,B,sizeof(B));
printf("%d",A[1]);
}

假设数组a={1,2,3,},下面的代码将a复制给数组b
main(){int b[3],a={1,2,3,},i;
for(i=0;i<3;i++)b[i]=a[i];
}

我用的是C

不同语言有一些小差别的,但总的思想是一样的。

if 条件满足
then 将b[3]赋值为A[3]

譬如最简单情况,AB两数组等长,你可以直接赋值B[i]=A[i]。

恩,长度确定是说你知道数组长度吗?如果我没记错,应该可以这样:
int i;
for i=1,i<=确定的长度,i++
b[i]=a[i]

或许有些小语法错误,但思想是这样,当然,或许有更简便的赋值方法。

你重载操作符撒,传两个数组进去,如果未知的数组还没分配内存,就直接申请和已知一样的,如果已经分配了,就先判断是否长度相等,相等就一个元素一个元素的赋值,不等就返回错误信息好了