C语言中,如何让两个数组相等?

问题很简单,比如两个数组x[2],y[2],已知x[2]={1,2},现在想让y[2]=x[2]
我直接让他们相等,虽然不报错,但是结果有问题,高手指教!
#include <stdio.h>
#include <math.h>
void main()
{
double x[2]={4,8};
double y[2];
y[2]=x[2];
printf("%f%f",y[0],y[1]);
getchar();

}
我自己写了小程序,检验了一下,但是发现y[2]的元素变得很大,怎么回事呢?

如果是数组长度相等,在初始化数组是直接将两个数组的长度设置为相同即可,如下:

    int a[10];
    int b[10];

如果是让两个数组的数据一样,可按下面的方法:

#include<stdio.h>
#include<string.h>
int main ()
{
    int i ;
    int a[10];
    int b[10];
    //初始化数组a
    for(i=0; i<10; i++)
    {
        a[i] = i;
    }
    //将a数组的数据复制给b
    //如果是字符数组,可以直接使用strcpy函数
    //如果是其它类型,可使用如下方法
    for(i=0; i<10; i++)
    {
        b[i] = a[i];
    }

    //输出数组a
    printf("a= ");
    for(i=0; i<10; i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");

    //输出数组b
    printf("b= ");
    for(i=0; i<10; i++)
    {
        printf("%d ",b[i]);
    }
    printf("\n");

}
运行结果:
a= 0 1 2 3 4 5 6 7 8 9
b= 0 1 2 3 4 5 6 7 8 9

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-06
x[2]是定义的时候用的,如果是用的时候是从x[0]开始,所以x[2]是个随机数,再者,y[2]也是不存在的,所以你等于是没给y这个数组里的任何一数赋值,两个都是随机数。
第2个回答  2009-11-06
数组不能直接等的
x[2]是定义的时候用的
这个数组的数应该是x[0],x[1]
你直接等y[2]就相当于没有赋值
第3个回答  2009-11-06
你的意思是要给y[2]赋值是不?

用个函数 memcpy();

例子在这

http://baike.baidu.com/view/736225.htm本回答被提问者采纳
第4个回答  2009-11-06
你这么赋值试试:

for(i=0;i<=1;i++)
y[i]=x[i];