memset是依靠二进制进行初始化,int是4个字节,memset把每个字节都赋值,也就是说,比如memset(a,2,sizeof(a)) 则00000010 00000010 00000010 00000010
而0,则是00000000 00000000 00000000 00000000结果是0
而-1,则是11111111 11111111 11111111 11111111结果也是-1
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int a[5];
memset(a,2,sizeof(a));
for (int i=1;i<=2;i++)
printf("%d\n",a[i]);
//00000010 00000010 00000010 00000010
int s=pow(2,25)+pow(2,17)+pow(2,9)+2;
printf("%d\n",s);
return 0;
}