c语言复制数组的某些值,关于二维数组复制数值的问题

本文通过一个C语言的例子探讨了二维数组与指针在复制过程中的问题。代码中展示了两种不同的复制方法,`copy_arr` 和 `copy_ptr`,虽然在`copy_arr`中存在明显的赋值错误,但结果却与预期相同。这主要是因为数组在内存中的连续存储特性导致的。文章旨在帮助读者深入理解数组和指针在内存操作中的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于二维数组复制数值的问题

明明赋值错误了,为什么显示正确的结果

#include

double copy_arr(double *,double *,int n);

double copy_ptr(double *,double *,int n);

int main(void)

{

double source[2][5]={{1.2,3.2,2.2,4.2,5.2},{2.2,4.2,12.2,4.2,1.2}};

double target1[2][5];

double target2[2][5];

copy_arr(source,target1,10);

printf("\n");

copy_ptr(source,target2,10);

}

double copy_arr(double *source,double *target1,int n)

{

int i,total=0;

for(i=0;i

{                           //这里为什么会显示正确的结果,明明是赋给target1[0]-target1[9],为什么结果会和target2[0][0]-target2[1][4]的值一样

target1[i]=source[i];

printf("%5.1f",target1[i]);

}

}

double copy_ptr(double *source,double *target2,int n)

{

int i,total=0;

for(i=0;i

{

*(target2+i)=*(source+i);

printf("%5.1f",*(target2+i));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值