一开始接触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] 来表示,
具体还有些细节,希望你们自己去多试试,多百度,以上纯个人见解