C语言 二维数组复制、清零及打印显示
main()
{
int i,j;
int a[2][3]={{1,2,3},{4,5,6}};
int b[2][3];
//二維數(shù)組復(fù)制(第三個參數(shù)為數(shù)組總的字節(jié)數(shù))
memcpy(b,a, 2*3*sizeof(int) );//memcpy(&b[0][0],&a[0][0],24);
//二維數(shù)組打印顯示 (before zero)
printarr2d(b,2,3);
//二維數(shù)組清零
memset(b,0, 2*3*sizeof(int) );
//二維數(shù)組打印顯示 (after zero)
printarr2d(b,2,3);
system("pause");
return 0;
}
mencpy的原型是void *memcpy(void *dest, const void *src, size_t n);1 為什么*memcpy這里前面有個*號?? 2 為什么函數(shù)的參數(shù)里面void * src 前面有個修飾符const 答: 1: memcpy 返回值為void * 2:加 const 變?yōu)槌A恐羔?防止在memcpy中對src指向的內(nèi)容進(jìn)行修改,函數(shù)的健壯性考慮
自己做的時候,就在想,如何不適用二重for循環(huán)的辦法,對二維數(shù)組進(jìn)行復(fù)制操作
看了下CSDN 的bbs結(jié)果真的有,非常感謝
注:
? 1)使用memcpy函數(shù),memset函數(shù)都要引入庫文件?#include <string.h>
? 2)本來想對這個復(fù)制函數(shù)封裝的,后來感覺沒必要,直接使用,只不過要注意第三個參數(shù)為:數(shù)組整體內(nèi)存所占bit數(shù),要小心
(2)
memset(b,0, 2*3*sizeof(int) ); 第一個值是數(shù)組地址,第二個是你要把數(shù)組中的值賦為多少,第三個是你要賦多少個元素。總結(jié)版:
二維數(shù)組復(fù)制:
//二維數(shù)組復(fù)制(第三個參數(shù)為數(shù)組總的字節(jié)數(shù)) memcpy(b,a, 2*3*sizeof(int) );//memcpy(&b[0][0],&a[0][0],24);二維數(shù)組清零:
//二維數(shù)組清零memset(b,0, 2*3*sizeof(int) );?
轉(zhuǎn)載于:https://www.cnblogs.com/shuqingstudy/p/5162585.html
總結(jié)
以上是生活随笔為你收集整理的C语言 二维数组复制、清零及打印显示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HipChat上传文件报未知错误解决方案
- 下一篇: 用cxSelect插件补充一下回显过滤项