把二维数组里的注释删除c语言,C语言 二维数组复制、清零及打印显示

本文介绍了在C语言中如何使用memcpy和memset函数高效地复制和清零二维数组。通过实例展示了如何利用这两个函数避免繁琐的双重循环,并解释了memcpy函数参数中*号和const关键字的作用。此外,还提供了二维数组复制和清零的代码示例,以及使用这两个函数时需要注意的细节,如参数计算和内存安全。
摘要由CSDN通过智能技术生成

#include #include#include

//二维整型数组打印显示

void printarr2d(int (*a)[3],int row,intcol)

{inti,j;for(i=0; i

{for(j=0; j

{

printf("%d", a[i][j]);

}

printf("");

}

}

main()

{

int i,j;

int a[2][3]={{1,2,3},{4,5,6}};

int b[2][3];

//二维数组复制(第三个参数为数组总的字节数)

memcpy(b,a, 2*3*sizeof(int) );//memcpy(&b[0][0],&a[0][0],24);

//二维数组打印显示 (before zero)

printarr2d(b,2,3);

//二维数组清零

memset(b,0, 2*3*sizeof(int) );

//二维数组打印显示 (after zero)

printarr2d(b,2,3);

system("pause");

return 0;

}

c语言中如何复制一个二维数组的所有元素的值到另外一个二维数

使用for循环固然可以,但是总感觉非常麻烦

#include"stdio.h"

int main(void)

{

int i,j;

int a[2][5]={{1,2,3},{4,5,6,8}};

int b[2][5];

for(i=0;i<2;i++)

{

for(j=0;j<5;j++)

{

b[i][j]=a[i][j];

}

}

printf("%d",b[1][2]);

}

(1)

mencpy的原型是void *memcpy(void *dest, const void *src, size_t n);

1 为什么*memcpy这里前面有个*号??

2 为什么函数的参数里面void * src 前面有个修饰符const

答:

1: memcpy 返回值为void *

2:加 const 变为常量指针 防止在memcpy中对src指向的内容进行修改,函数的健壮性考虑

自己做的时候,就在想,如何不适用二重for循环的办法,对二维数组进行复制操作

看了下CSDN 的bbs结果真的有,非常感谢

注:

1)使用memcpy函数,memset函数都要引入库文件 #include

2)本来想对这个复制函数封装的,后来感觉没必要,直接使用,只不过要注意第三个参数为:数组整体内存所占bit数,要小心

(2)

memset(b,0, 2*3*sizeof(int) );

第一个值是数组地址,第二个是你要把数组中的值赋为多少,第三个是你要赋多少个元素。

总结版:

二维数组复制:

//二维数组复制(第三个参数为数组总的字节数)

memcpy(b,a, 2*3*sizeof(int) );//memcpy(&b[0][0],&a[0][0],24);

二维数组清零:

//二维数组清零

memset(b,0, 2*3*sizeof(int) );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值