#include <stdlib.h>
#include <stdio.h>
#include <string.h>//二维整型数组打印显示
void printarr2d(int (*a)[3],int row,int col)
{int i,j;for(i=0; i<row; i++)  {  for(j=0; j<col; j++)  {  printf("%d  ", a[i][j]);  } printf("\n");    }
}

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 <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语言 二维数组复制、清零及打印显示相关推荐

  1. c语言 复制二维数组,C语言 二维数组复制、清零及打印显示(示例代码)

    #include #include#include //二维整型数组打印显示 void printarr2d(int (*a)[3],int row,intcol) {inti,j;for(i=0; ...

  2. 二维数组清零 c语言,C语言 二维数组复制、清零及打印显示

    #include #include#include //二维整型数组打印显示 void printarr2d(int (*a)[3],int row,intcol) {inti,j;for(i=0; ...

  3. java二维数组扫雷,C语言二维数组实现扫雷游戏

    #include //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', '+','+','+','+' ...

  4. C语言 二维数组遍历 - C语言零基础入门教程

    目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...

  5. C语言 二维数组行数和列数计算 - C语言零基础入门教程

    目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...

  6. C语言 二维数组定义和使用 - C语言零基础入门教程

    目录 一.二维数组简介 二.定义二维数组并初始化 1.定义二维数组 2.初始化二维数组 三.访问二维数组 四.修改二维数组 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 & ...

  7. C语言错误c2063,请教C语言中关于将二维数组复制到一个三维数组的问题

    请教C语言中关于将二维数组复制到一个三维数组的问题 小白正在填写一段代码,是有点类似与俄罗斯方块的一段游戏代码,代码如下 要求在增加参数,变量和函数的情况下完成此代码,只能填写// write app ...

  8. c语言 二维数组 文库,c语言二维数组练习题

    c语言二维数组练习题 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 完成下列程序代码完成下列程序代码1. 将二维数组(5 行 5 ...

  9. ZYNQ7000 学习(二十八)C语言二维数组映射到显示器的原理分析以及实现实例 学

    C语言二维数组映射到显示器的原理分析以及实现实例 学习内容 本课将 在上一课的基础上 修改一下 AXI_LITE_SLAVE外设,不再使用寄存 器而直接对 VGA显存里的数据进行进行写操作,达到以数组 ...

最新文章

  1. std::string的find问题研究
  2. linux floating ip,Floating IP in OpenStack Neutron
  3. Myisamchk小工具使用手册
  4. canvas——橡皮筋式线条绘图应用
  5. day17——其他内置函数
  6. Transformer-XL解读(论文 + PyTorch源码)
  7. PS教程第三课:PS界面
  8. 2021年陕西高考成绩单招查询时间,2021年陕西单招考试时间是什么时候,单招考试分数线是多少...
  9. 一文读懂「中台」的前世今生
  10. 一起学习C语言:C语言循环结构(三)
  11. WPF跨程序集共享样式(跨程序集隔离样式和代码)
  12. nginx如何编译安装mysql_centos系统编译安装nginx+php环境另加独立mysql教程
  13. 面向对象编程:Java复杂数据类型用法
  14. 数据平台作业调度系统详解-理论篇
  15. 目录-化工工艺设计手册-换热器
  16. win10怎么获得计算机权限,Win10如何获取TrustedInstaller超级权限?
  17. 儿童python编程入门-儿童编程python入门
  18. [COGS2287][HZOI 2015]疯狂的机器人(NTT)
  19. python证件照_python实现证件照换底功能
  20. 虚拟化服务器 戴尔,dell虚拟化服务器配置(戴尔服务器配置)

热门文章

  1. JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归
  2. 计算机应用与网络讲义,计算机基础讲义
  3. html中插人视频教程,HTML中插入视频并兼容所有浏览器
  4. cpu缓冲区大小怎么设置_JAVA高薪面试必备知识点Volatile底层原理探究CPU在作怪
  5. Transformer、BERT学习笔记
  6. 排队接水pascal程序
  7. UOJ #395 BZOJ 5417 Luogu P4770 [NOI2018]你的名字 (后缀自动机、线段树合并)
  8. java在主程序修改函数输出,Java通过JNI调用CUDA
  9. Java入参关键字_Java基础17-成员变量、return关键字和多参方法
  10. NetCore2.x 使用Log4Net(一)