码迷,mamicode.com
首页 > 编程语言 > 详细

c/c++中对于memset的个人理解

时间:2018-01-05 21:58:21      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:头文件   代码   理解   一个   fine   memset   size   补码   span   

今天在写一道dfs题目,想到要给一个二维数组初始化合适的函数且学过的就memset了,这个函数很神奇memset函数是逐字节进行填充并且它是一个字符串函数,看到网上一个代码没看懂如下

#define MAX 100000
const int MAXN = 5; 
int len[MAXN][MAXN]; 
memset(len,MAX,sizeof(len));//失败,并不能让len数组所有的值是100000,而是-1600085856
memset(len,-1,sizeof(len))//成功,并且len所有的值都是-1;
memset(len,-2,sizeof(len))//失败 

又继续搜索发现memset函数是逐字节进行填充,所以a一般为char *型。对于其它类型的a,可以填充的值有两个,0和-1。因为计算机中用二进制补码表示数字,0和二进制补码为全0,-1的二进制补码为全1,

第一个和第三个失败的原因就是如此。最后要注意该函数在头文件<string.h>中

 

c/c++中对于memset的个人理解

标签:头文件   代码   理解   一个   fine   memset   size   补码   span   

原文地址:https://www.cnblogs.com/fanliyong007/p/8206624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!