关于memset()和fill()的使用

一开始接触c的时候,最先用的数组初始化函数就是memset(),但是这是个用于初始化字符的函数,而且赋值是以字节为单位的,对与一般的数组的话,只能有0,和-1 这两个值的初始化,其他的初始化并不能按要求达到,具体细节自己百度

使用方法(多用于对一,二维数组初始化为0)

memset(arr,0,sizeof(arr))   有三个参数,第一个是数组的地址(一二维都一样),

      第二个是初始化的值,(int数组只有0,和-1)的值可被初始化,说的可能不规范,但目的就是想说这个赋值只有这两个特殊值可以

第三个就是要赋值的规模,一般用sizeof(数组名)  也可以是  n*sizeof(int)

函数包含在头文件 string.h  这是个字符串函数的头文件,由这里也可看出来这是个字符函数


fill函数的使用

头文件需要(c++的东西)

#include <iostream>

using namespace std;

1,对一位数组a[n]的赋值,

fill(a,a+n,1)

第一个参数是数值第一个值的地址,及开始的地方

第二个参数是我们需要结束的地方,但不会报告a[n],区间为[a[0],a[n])前开后闭

第三个参数是我们需要的赋值,这个相对memeset()就灵活很多,可随意赋值了

2,对二维数组a[m][n]的赋值

首先要先明确二维数组的存储方式在计算机内存上也是连续的物理空间,可以说存储方式和一维的是一样的,只不过我们多用个参数来表示,就成了二维的

注意第一个参数的值

fill(a[0],a[0]+m*n,1) 

参数的类型和上面的一样,这里唯一值得注意的是第一个起始地址,因为是二维数组,它的第一个数值的表达是 a[0][0],而它的地址就可以用a[0] 来表示,


具体还有些细节,希望你们自己去多试试,多百度,以上纯个人见解



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值