#include <stdlib.h>
#include <stdio.h>
#include <string.h> //二维整型数组打印显示
void printarr2d(int (*a)[],int row,int col)
{
int i,j;
for(i=; i<row; i++)
{
for(j=; 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, **sizeof(int) );//memcpy(&b[0][0],&a[0][0],24);

二维数组清零:

 //二维数组清零
memset(b,, **sizeof(int) );

C语言 二维数组复制、清零及打印显示的更多相关文章

  1. c语言二维数组传递

    c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...

  2. C语言二维数组作业

    一.PTA实验作业 题目1:7-3 出生年 1. 本题PTA提交列表 2. 设计思路 1.声明一个函数different()用来计算一个年份的不同数字个数 2.定义y(y是来计算符合要求的年份的量), ...

  3. 关于c语言二维数组与指针的个人理解及处理办法。

    相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

  4. C语言 二维数组(指针)动态分配和释放(转)

    C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...

  5. C语言二维数组

    上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本节只介绍二维数 ...

  6. C语言二维数组作为函数参数

    设有整型二维数组a[3][4]如下:0   1   2   34   5   6   78   9  10  11 它的定义为:    int a[3][4]={{0,1,2,3},{4,5,6,7} ...

  7. C语言二维数组作为函数的参数

    前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...

  8. C语言二维数组实现扫雷游戏

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

  9. c语言二维数组与指针

    问题,以下输出的结果是什么,区别在于哪? void main() { ][] = { ,,,,,,,,,,, }; //输出的3个地址都一样,差别在哪? printf("\n%x" ...

随机推荐

  1. linux 驱动入门3

    不吃苦中苦,难为人上人.努力,给老婆孩子提供个良好的生活居住环境. http://www.cnblogs.com/nan-jing/articles/5806399.html 上文提到.可以自动创建了 ...

  2. jquery在调试时出现缺少对象的错误

    1)引入的js文件出错,  检查方法:将Js的内容写在当前的页面的<script> </script>之间,看是否能够正常运行,如果不能,请核查代码  2) 如果引入的代码在当 ...

  3. 文本去重-----awk或者uniq

    对于awk '!a[$3]++',需要了解3个知识点 1.awk数组知识,不说了 2.awk的基本命令格式 awk 'pattern{action}'     省略action时,默认action是{ ...

  4. tp框架中的静态验证

    //制定命名空间在Home 模块下Model文件夹下 如:namespace Home\Model; //引用父类 如:use Think\Model; //实例化表 如:class ZhuCeMod ...

  5. 浅谈IOS8之size class

    文章目录 1. 简介 2. 实验 3. 实战 3.1. 修改 Constraints 3.2. 安装和卸载 Constraints 3.3. 安装和卸载 View 3.4. 其他 4. 后话 以前和安 ...

  6. svn 安装网站

    1.svn插件 http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

  7. eclipse hibernate plugin

    JBoss Tools hibernate tools for eclipse plugins

  8. Objective-C中的面向对象编程

    1.过程式编程实例,画出Shape数组中的图形: // // main.m // hello-obj // // Created by zhouyang on 16/4/4. // Copyright ...

  9. Delphi在Vasta/win 7下通过UAC控制

    在Windows编程时,为了兼容Win7与XP,许多需要底层权限的程序需要通过UAC验证,这是微软出的一个很恶心的东西……还不如Ubuntu那种Root机制呢……但是有困难我们就要克服-现在有一种方式 ...

  10. CSS3 :target伪类的理解与使用

    CSS3 :target伪类用来改变页面中锚链接URL所指向的ID元素的样式,例如你要改变描链接指向#tab的元素字体颜色为蓝色,哪么你可以这样写成#tab:target {color:blue} 浏 ...