关闭

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

2472人阅读 评论(0) 收藏 举报
分类:

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;
}


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:209552次
    • 积分:4987
    • 等级:
    • 排名:第5862名
    • 原创:291篇
    • 转载:26篇
    • 译文:0篇
    • 评论:59条
    文章分类
    最新评论