C语言 二维数组复制、清零及打印显示
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;
}
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 <string.h>
? 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) );?
轉載于:https://www.cnblogs.com/shuqingstudy/p/5162585.html
總結
以上是生活随笔為你收集整理的C语言 二维数组复制、清零及打印显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HipChat上传文件报未知错误解决方案
- 下一篇: 用cxSelect插件补充一下回显过滤项