二维数组的作为参数的函数引用

RichAndMerry RichAndMerry 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请教,为什么下面这个输出结果异常。我原目的是想创建一个复制二维数组的函数和显示二维数组的函数,显示的数组不应该是arr1的值吗?可是它的结果有些不太明白;
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

void copy_2arr(size_t N_length, size_t M_length, int(*)[5], int(*)[5]);
void show_2arr(size_t N_length, size_t M_length, int(*)[5]);

int _tmain(int argc, _TCHAR* argv[])
{
int arr1[3][5] = { { 1, 2, 3, 4, 5 }, { 2, 3, 4 ,5, 6 }, { 7, 8, 9, 10, 11 } };
int arr2[3][5];
copy_2arr(3, 5, arr2, arr1);
show_2arr(3, 5, arr1);
show_2arr(3, 5, arr2);

system("PAUSE");
return 0;
}

void copy_2arr(size_t N_length, size_t M_length, int(*arr_des)[5], int(*arr_sour)[5])
{
for (size_t i = 0; i < N_length; i++)
{
for (size_t i = 0; i < M_length; i++)
{
arr_des[N_length][M_length] = arr_sour[N_length][M_length];
printf(" d_%d ", arr_des[N_length][M_length]);
printf(" s_%d ", arr_sour[N_length][M_length]);
printf("\n");
}
printf("\n");
}
printf("\n");
}
void show_2arr(size_t N_length, size_t M_length, int(*arr_show)[5])
{
for (size_t i = 0; i < N_length; i++)
{
for (size_t i = 0; i < M_length; i++)
{
printf(" %d ", arr_show[N_length][M_length]);
}
printf("\n");
}
printf("\n");
}


结果输出:
d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904

d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904

d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904
d_4029904 s_4029904


4029904 4029904 4029904 4029904 4029904
4029904 4029904 4029904 4029904 4029904
4029904 4029904 4029904 4029904 4029904

4029904 4029904 4029904 4029904 4029904
4029904 4029904 4029904 4029904 4029904
4029904 4029904 4029904 4029904 4029904

请按任意键继续. . .
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
RichAndMerry
新手乐园 33,315 成员 41,769 内容