C语言 二维数组复制、清零及打印显示
#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语言 二维数组复制、清零及打印显示的更多相关文章
- c语言二维数组传递
c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...
- C语言二维数组作业
一.PTA实验作业 题目1:7-3 出生年 1. 本题PTA提交列表 2. 设计思路 1.声明一个函数different()用来计算一个年份的不同数字个数 2.定义y(y是来计算符合要求的年份的量), ...
- 关于c语言二维数组与指针的个人理解及处理办法。
相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...
- C语言 二维数组(指针)动态分配和释放(转)
C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...
- C语言二维数组
上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本节只介绍二维数 ...
- 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} ...
- C语言二维数组作为函数的参数
前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...
- C语言二维数组实现扫雷游戏
#include<stdio.h> //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', ...
- c语言二维数组与指针
问题,以下输出的结果是什么,区别在于哪? void main() { ][] = { ,,,,,,,,,,, }; //输出的3个地址都一样,差别在哪? printf("\n%x" ...
随机推荐
- ubuntu 14.04 安装torch及编译环境zbstudio
ubuntu 14.04 安装torch及编译环境zbstudio torch zbstudio 本来是安装官网给的步骤安装torch的,可是碰到一系列的问题,后来参考网上的安装方法安装成功了 官网安 ...
- 关于eclipse创建Maven项目创建的问题
1.问题: 为什么Maven Update Project JDK变回1.5 解释:官方文档 The Compiler Plugin is used to compile the sources of ...
- 【转】mysql中文乱码的一点理解
我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B. 如果你也遇到了这个问题,咱 ...
- STM32F10X SPI操作flash MX25L64读写数据(转)
源:STM32F10X SPI操作flash MX25L64读写数据 前一段时间在弄SPI,之前没接触过嵌入式外围应用,就是单片机也只接触过串口通信,且也是在学校的时候了.从离开手机硬件测试岗位后,自 ...
- C++类的存储(部分可用与c的结构体)
c++中最重要的就是类,那么给你一个类的对象,你知道它在内存中如何存储的吗?它占内存中多少个字节? 首先确定类的构成: 1,数据成员:可以是内置类型,类类型. 2,函数成员:虚函数,非虚函数 1)数据 ...
- 安卓selector
定义styles.xml <?xml version="1.0" encoding="utf-8"?> <resources> < ...
- java系列-JDBC的封装
参考:http://blog.csdn.net/liuhenghui5201/article/details/16369773 一. 1.加载驱动-->>封装 --->> ...
- Win10 的虛擬桌面
Win10 的虛擬桌面我覺得蠻多餘的,平常很少用,除非是像以前的 "切換老闆鍵" ,老闆來了,你不想讓他知道你在幹嘛,趕快切換另外一個桌面. 切換工作視窗:Alt + Tab 叫出 ...
- iOS 编程小知识 之 本地化
1. 使用本地化多语言 有时候,在网上下载的Demo,有本地化的处理,默认的本地化都是英文,这时候,可以考虑这么处理: info.plist->Infomation Property List ...
- 负载均衡探测器lbd
负载均衡探测器lbd 大型网站为了解决海量访问问题,往往采用负载均衡技术,将用户的访问分配到不同的服务器上.网站的负载均衡可以从DNS和HTTP两个环节进行实施.在进行Web渗透测试的时候,需要先 ...