memset原理(为什么只能初始化成0或者-1)

来源:互联网 发布:玩具战争防御塔数据 编辑:程序博客网 时间:2024/06/06 01:10

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 00000010int s=pow(2,25)+pow(2,17)+pow(2,9)+2;printf("%d\n",s);return 0;}


原创粉丝点击