函数介绍
- 函数原型:memest(void *buffer, int c, int count)
- 函数解释:将buffer中当前位置后面的n个字节用c替换并返回s
- 三个参数:buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度
函数用法
- 将字符数组赋初值
#include<bits/stdc++.h>
using namespace std;
int main(){
char s[105];
memset(s,'a',sizeof(s));
for(int i=0;i<20;i++){
cout<<s[i]<<" ";
}
return 0;
}
- 将整型数组赋值-1或0
#include<bits/stdc++.h>
using namespace std;
int main(){
int s[105];
memset(s,-1,sizeof(s));
for(int i=0;i<20;i++){
cout<<s[i]<<" ";
}
return 0;
}
- 将布尔型数组赋初值
#include<bits/stdc++.h>
using namespace std;
int main(){
bool s[105];
memset(s,1,sizeof(s));
for(int i=0;i<20;i++){
cout<<s[i]<<" ";
}
return 0;
}
注意事项
memset是以字节为单位赋值,由于字符型和布尔型,每位都是一字节,所以赋值没有问题。
当使用整型数组时,整型每一个变量是四个字节,当赋值为1的时候
转换为二进制是0000 0001,这样属于一个字节,而一个整型四个字节
所以就变成了0x 0101 0101即十进制的16843009
那么,为什么-1就没问题呢,-1转换为二进制就是1000 0001,由于是补码存储,
所以变成了1111 1111,四个字节就变成了0x 1111 1111,翻译成原码即为0x 1000 0001,就是-1。
Comments | NOTHING