博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言 二维数组复制、清零及打印显示
阅读量:5277 次
发布时间:2019-06-14

本文共 1430 字,大约阅读时间需要 4 分钟。

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

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

你可能感兴趣的文章
Thinking in java 笔记一
查看>>
SPHINX 文档写作工具安装简要指南 - windows 版 - 基于python
查看>>
剖析Hadoop和Spark的Shuffle过程差异(一)
查看>>
pom.xml增加依赖
查看>>
寻找道路(codevs 3731)题解
查看>>
Ubuntu系统安装(win7双系统)
查看>>
字典数组 区别
查看>>
vue中什么样的数据可以是在视图中显示
查看>>
es6解构赋值的高级技巧
查看>>
最小生成树
查看>>
剑指offer(19)顺时针打印矩阵
查看>>
5.28 模拟赛
查看>>
BZOJ 2049: [Sdoi2008]Cave 洞穴勘测
查看>>
【题解】Luogu P3674 小清新人渣的本愿
查看>>
AS的快捷键
查看>>
数据分页 THINKPHP3.2 分页 三种分页方法
查看>>
format的用法
查看>>
select下拉列表选中后,跳转新链接
查看>>
AEAI ESB路由转换机制说明
查看>>
Spring Aop面向切面编程&&自动注入
查看>>