拷贝数组内容,小弟我的方法是直接复制内容,可以修改成将源数组内容的地址赋给目标指针吗

拷贝数组内容,我的方法是直接复制内容,可以修改成将源数组内容的地址赋给目标指针吗?
#include<stdio.h>
//程序目的是将一个数组的内容,拷贝到另外两个数组里面
void copy_arr(double ar1[],double ar2[],int i);//传递数据时使用数组下标
void copy_ptr(double * ar1,double * ar2,int i);//传递数据时使用指针
void main()
{
double source[5]={1.1,2.2,3.3,4.4,5.5};
double target1[5];
double target2[5];
int index;

printf("source:");
for(index=0;index<5;index++)
printf("%Lf ",source[index]);
printf("\n");
copy_arr(source,target1,5);
copy_ptr(source,target2,5);
system("pause");
}

void copy_arr(double ar1[],double ar2[],int i)
{
int index;

for(index=0;index<i;index++)//传递数据
ar2[index]=ar1[index];
printf("target1:");
for(index=0;index<i;index++)//打印数据
printf("%Lf ",ar2[index]);
printf("\n");
}

void copy_ptr(double * ar1,double * ar2,int i)
{
int index;

for(index=0;index<i;index++)//传递数据
*(ar2+index)=*(ar1+index);
printf("target2:");
for(index=0;index<i;index++)//打印数据
printf("%Lf ",*(ar2+index));
printf("\n");
}


上面的代码copy_ptr(double * ar1,double * ar2,int i)函数中,*(ar2+index)=*(ar1+index);这一句是将源数组第i个数据直接赋给目标数组相应的单元。
我想改成让目标数组的指针直接指向源数据的地址,而不是给指针的内容赋值,要怎么该呢?
新手对指针的运用还不熟练,望大神指教。
------解决方案--------------------
参数改成 double **ar1, double **ar2.
然后 double * tmp = *ar1;
          *ar1 = *ar2;
          *ar2 = tmp;
------解决方案--------------------
感觉楼主的后一个问题不涉及复制。
double s[5] = {1.1,2.2,3.3,4.4,5.5};
double *p = s;
这样 就可以调用 p[0],p[1]....了,它们的值和s是一样的。

另外,copy的时候,目标写在前,源写在后
这虽然是一个不成文的约定,但很多人也是这么做的,至少,vc 是这么做的
如:
memcpy(void *dst, void *src, size_z count);
这样其他人(或自己在别的地方)调用的时候,不会把目标和源弄错了。