memset用处
memset函数是主要用于初始化字符串的一个函数,也可以用于初始化自定义类型数组、结构体数组和其他类型数组。
memset使用方法
memset函数原型如下:
void * __cdecl memset(void *_Dst,int _Val,size_t _Size)
其中,_Dst代表初始化数组名,_Val代表初始化数值(如果数组是字符串类型则输入ASCII码),_Size代表初始化范围(通常用sizeof)。
但是,memset有一个特别大的坑,就是它是将每个字节初始化为这个数,而int有4个字节,所以只能初始化每个字节都相同的数(小编特别提示:负数在计算机中是以补码存储的,而-1的补码是11111111,每个字节都一样)。
如(我的Dev-C++是5.11,安装文件地址https://sm.myapp.com/original/Development/Dev-Cpp_5.11_TDM-GCC_4.9.2_Setup.exe):
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
int main() {
int a[10]={0};
for(int i=0;i<10;i++) {
cout<<*(a+i)<<' ';
memset(a,2,sizeof(a));
for(int i=0;i<10;i++) {
cout<<*(a+i)<<' ';
getch();
return 0;
}
运行结果:
0 0 0 0 0 0 0 0 0 0
33686018 33686018 33686018 33686018 33686018 33686018 33686018 33686018 33686018
再来:
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
int main(){
char a[11];
memset(a,'a',sizeof(a)-1); //小编提示:由于是字符串,所以要-1
puts(a);
memset(a,'b',sizeof(a)-1);
puts(a);
getch();
return 0;
}
aaaaaaaaaa
bbbbbbbbbb
好了,以上就是memset
的用法了。