初始化数组可不必使用n重for循环。


原理

memset具有初始化数组的功能,能够初始化数组中的每一个值。

它是将数组中的每一个数的二进制的每一个字节初始化的。

比如初始化int类型的a数组:memset(a,1,sizeof(a)); 得到的其实是0001 0001 0001 0001。

关于0x......不懂的:我的博客

代码

#include<cstring>
如果是int数组:

  • memset(g, 0, sizeof(g));                   //全部清为0
  • memset(g, 0x7f, sizeof(g));    //可全部初始化为一个很大的数(略小于0x7fffffff);
  • memset(g, 0x3f, sizeof(g));    //稍小(适用于有加法运算)
  • memset(g, 0xbf, sizeof(g));    //负值稍大
  • memset(g,-1,sizeof(g));       //全部初始为-1

补充:初始化结构体

memset(结构体变量名,0,sizeof(变量名)); 即可将这个变量中的每一个成员变量都赋值为0。


能用到的差不多就这些了。

memset 初始化数组 & 实现原理的更多相关文章

  1. memset初始化数组的坑

    memset函数常被我们用来初始化数组,然而有个坑可能会被我们踩到. 静态数组初始化 一般情形是这样的: #include <cstring> int main() { // 静态数组ar ...

  2. memset初始化数组的问题

    今天才搞清楚,memset用于初始化数组,仅能初始化为0值,而不能初始化一个特定的值,这怎么能模糊了呢??? 因此,如果对申请的一段存放数组的内存进行初始化,每个数组元素均初始化为特定的值,必须使用循 ...

  3. memset 初始化数组

    memset是初始化一段内存区域的函数,其头文件是<string.h>,以前经常使用出现错误,整理一下. C++ Reference对于memset的定义为: void * memset ...

  4. 批量初始化数组和memset函数

    对于数组的初始化有一下三种方式: int  a[]={1,2,3,4,5} //通过判断初始化值得个数来却仍数组长度 int b[5]={1,2,3} //数组长度为5,可是初始值却只有三个,因此,不 ...

  5. c++ 批量初始化数组 fill和fill_n函数的应用

    转自c++ 如何批量初始化数组 fill和fill_n函数的应用 std::fill(a+,a+,0x3f3f3f3f);///从下标2到下标10 前闭后开 共8个 std::fill_n(a+,,0 ...

  6. c#清空数组&初始化数组&动态数组

    清空数组>>>Array.Clear [去MSDN查看] ]; ; i < str.Length; i++) str[i] = i.ToString(); Array.Clea ...

  7. PHP5.2 $arr = [] 初始化数组出现问题

    初始化数组  $arr=[] ,出现问题,使用 $arr = array() ,一切正常

  8. Java自学-数组 初始化数组

    Java 如何初始化数组 步骤 1 : 分配空间与赋值分步进行 public class HelloWorld { public static void main(String[] args) { i ...

  9. 使用memset初始化int数组

    memset()是一个来自于string库的函数,正规用法是初始化char类型的数组.因为char类型只占1个字节,memset按字节赋值后,会将char类型数组的所有元素变为你指定的值.但是4字节的 ...

随机推荐

  1. Java虚拟机——类加载机制

    转自:http://blog.csdn.net/ns_code/article/details/17881581 类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载 ...

  2. 03机器学习实战之决策树scikit-learn实现

    sklearn.tree.DecisionTreeClassifier 基于 scikit-learn 的决策树分类模型 DecisionTreeClassifier 进行的分类运算 http://s ...

  3. 外媒:Apple面临着印度iPhone的停用

    据外媒报道:印度电信管理局(TRAI)制定遏制令人讨厌的消息的新规则可能导致印度数百万部iPhone的停用. 该监管机构本周早些时候宣布了“2018年电信商业通信客户偏好规定”,根据该规定,它已提议“ ...

  4. GC、进程和线程的定义

    GC是什么,为什么要有GC GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃.Java提供的GC ...

  5. 搭建vue项目并启动vue项目

    链接地址:https://blog.csdn.net/aa792978017/article/details/82939483 Vue.js是现在比较优秀的Web前端框架,下面开始从零开始搭建一个Vu ...

  6. es6 扩展运算符 三个点...

    es6中引入扩展运算符…,它用于把一个数组转化为用逗号分隔的参数序列,它常用在不定参数个数时的函数调用,数组合并等情形.因为typeScript是es6的超集,所以typeScript也支持扩展运算符 ...

  7. 饿了么CTO张雪峰:允许90后的技术人员“浮躁“一点

    编者按:今年4月,饿了么正式加入了阿里新零售战队,进一步加速其在本地生活市场的扩张速度.在创业9年的时间中,饿了么在外卖领域经历了真正的“从0到1”,尤其是在外卖平台的技术升级方面,越过了一个又一个的 ...

  8. php str_replace()函数 语法

    php str_replace()函数 语法 作用:字符串替换操作,区分大小写大理石构件 语法:str_replace(find,replace,string,count) 参数: 参数 描述 fin ...

  9. CF 1182F Maximum Sine——根号算法

    题目:http://codeforces.com/contest/1182/problem/F 注意有绝对值. 那么就是 k*p 对 q 取模,找最接近 \(\frac{q}{2}\) 的结果. 也就 ...

  10. VMware Workstation 官方正式版及激活密钥

    热门虚拟机软件VMware Workstation Pro现已更新至14.1.2,14.0主要更新了诸多客户机操作系统版本,此外全面兼容Wind10创建者更新.12.0之后属于大型更新,专门为Win1 ...