2017-12-10
memset函数的头文件为cstring
/* Set N bytes of S to C. */
extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1));
意思是:将S开始长度为N字节的位置赋值为C
代码
#include<iostream>
#include<cstring>
using namespace std;
const int N = 10;
int x[N+1];
char y[N+1];
int main(){
memset(y,65,sizeof(y));
cout<<"1."<<y[1]<<endl;
memset(y,97,sizeof(y));
cout<<"2."<<y[1]<<endl;
memset(y,100,sizeof(y));
cout<<"3."<<y[1]<<endl;
memset(x,0,sizeof(x));
cout<<"4."<<x[1]<<endl;
memset(x,1,sizeof(x));
cout<<"5."<<x[1]<<endl;
memset(x,-1,sizeof(x));
cout<<"6."<<x[1]<<endl;
return 0;
}
我们得到的结果为:
1.A
2.a
3.d
4.0
5.16843009
6.-1
对于字节而言,我们直接得到整数对应的字符,但是对于多字节的整数而言,可能就和我们想的不一样了...
如果赋值为0的话,四个字节全为0,即为0...
如果赋值为1的话,四个字节全为1,转换为十六进制即为0x01010101...
如果赋值为-1的话,四个字节全为-1,转换为十六进制即为0xffffffff,即为-1...
如果是指针的话我们也要慎用memset了