memset()用法简介
memset(void *buffer, int c, int count)
作用:将从buffer地址开始 , 连续count个字节的值都设置成 值 c
注意是按字节复制的
上面的 c 并不是变量的值,变量具体的值还要看变量的类型
比如 int 类型 一般占四个字节
那么
当 c 为 0 变量值就是 补码 00000000 00000000 00000000 00000000合在一起值 0
当 c 为 1 变量值就是 补码 00000001 00000001 00000001 00000001合在一起值 16843009
直接看代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int f[10];
memset(f,0,sizeof(f));//0
cout<<f[0]<<endl;
memset(f,1,sizeof(f));//16843009
cout<<f[0]<<endl;
memset(f,0x3f,sizeof(f));//0x3f 为 16*3+15 = 63 1061109567
cout<<f[0]<<endl;
memset(f,0x7f,sizeof(f));// 0x7f 为 16*7+15 = 127 2139062143
cout<<f[0]<<endl;
memset(f,0xcf,sizeof(f));// 0xcf 为 16*12+15 = 207 -808464433
cout<<f[0]<<endl;
return 0;
}
在做算法练习题时 一般情况下
当我们需要将 数组 初始化 为很大的值得时候 可以将 c 设置为 0x3f
当我们需要将 数组 初始化 为很小的值得时候 可以将 c 设置为 0xcf
大佬,两个都是初始化为很大的值,是不是写重复了?
对