memset()是string.h头文件中的函数

作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法

注意:

1.memset函数按字节对内存块进行初始化,所以不能用它将int数组初始化为0和-1之外的其他值(除非该值高字节和低字节相同)

比如:int a[5];

memset(a,1,sizeof(a));

因为1的二进制码为00000000 00000000 00000000 00000001   只要其中的后八位(00000001)

所以数组中每个元素的四个字节都会被赋值为(00000001)
其结果就是 00000001 00000001 00000001 00000001

所以数组中每个元素的值都会是    1*pow(2,24)+1*pow(2,16)+1*pow(2,8)+1*pow(2,0)=16843009;

2.第二:memset(void *s, int ch,size_t n);中ch实际范围应该在0~~255,因为该函数只能取ch的后八位赋值给你所输入的范围的每个字节

比如:int a[5];

memset(a,-1,sizeof(a))与  memset(a,511,sizeof(a)) 所赋值的结果是一样的都为-1;

因为 -1的二进制码为(11111111 11111111 11111111 11111111)

511的二进制码为(00000000 00000000 00000001 11111111)

后八位都为(11111111),所以数组中每个字节,如a[0]元素的四个字节都被赋值为(11111111)

其结果为a[0](11111111 11111111 11111111 11111111),即a[0]=-1

因此无论ch多大只有后八位二进制有效,而后八位二进制的范围在(0~255)中改。

而对字符数组操作时则取后八位赋值给字符数组,其八位值作为ASCII码。

#include<stdio.h>
#include<string.h>
int main()
{ int a[7];int i;memset(a,0,sizeof(a));for(i=0;i<7;i++){printf("%d  ",a[i]);}printf("\n\n");memset(a,1,sizeof(a));for(i=0;i<7;i++){printf("%d  ",a[i]);}return 0;
} 
结果:0  0  0  0  0  0  0  16843009  16843009  16843009  16843009  16843009  16843009  16843009  

memset()函数的使用详解相关推荐

  1. c语言memset函数用法,C语言memset函数使用方法详解

    C语言memset函数使用方法详解 一.函数原形   void *  memset(void*s, int ch,size_t n) 二.函数作用  将以s内存地址为首的连续n个字节的内容置成ch,一 ...

  2. c语言memset函数作用,C语言memset函数使用方法详解

    C语言memset函数使用方法详解 一.函数原形   void *  memset(void*s,int ch,size_t n) 二.函数作用  将以s内存地址为首的连续n个字节的内容置成ch,一般 ...

  3. memset()函数的用法详解

    前言 最近做题时突然想到用memset给数组的元素赋值100,但是发现结果和想象中的不一样 通过debug看到数组中的元素的值都为1684300900,而明明给它的是100,这是为什么呢,于是查阅了一 ...

  4. memset函数()详解

    在做网络通信编程遇到这个并且理解这个函数,发现这个函数对于较多数据变量同时初始化很有用. 下面就是对于他的一些理解: memset()函数原型是 extern void *memset(void *b ...

  5. 利用栈求表达式的值_高一数学月考考点之函数的表达式详解

    函数表达式考点详解,教你轻松学函数 Hello,大家好,这里是摆渡学涯.很高兴在这里跟大家分享知识哦.这次课程我们来为大家讲一下函数表达式相关的考点,教你轻松学函数. 基本概念 什么是函数表达式呢?我 ...

  6. python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  7. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  8. countif和sum套用_if函数嵌套countif、sumif函数实例操作详解 你需要学习了

    excel中if函数嵌套countif函数实例操作详解,需要了解if函数.countif函数.sumif函数字符串引用方式,isblank函数 操作方法 01 用扫描枪连接excel后将自动将货物名称 ...

  9. php函数find的用法,c语言find函数的用法详解

    c语言find函数的用法详解 C语言之find()函数 find函数用于查找数组中的某一个指定元素的位置. 比如:有一个数组[0, 0, 5, 4, 4]: 问:元素5的在什么位置,find函数 返回 ...

最新文章

  1. 单片机如何从上电复位执行到main函数?
  2. SIP.conf的常用参数配置
  3. java接口文档生成工具_接口文档生成
  4. vue2.0-脚手架-todolist案例
  5. shell实战训练营Day1
  6. 【flink】flink 消费组死掉 Lag不变 kafka不提交 重启恢复 非常诡异
  7. HTML5使用Div标签来实现表格
  8. DSP5509项目之用FFT识别钢琴音调(5)之开始傅里叶变换
  9. 亡命逃窜---三维搜索
  10. 拓端tecdat|Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
  11. MVC学习第七节 UrlHelper
  12. codeblock的汉化过程
  13. ps自动,批处理,替换原文件夹图片
  14. selenium python怎么断言_请问selenium python 断言怎么写?
  15. 【话题:工作生活】2020年工作总结--杭漂结束,沪漂开始。
  16. Python爬虫之小猪短租房
  17. 天使之火Angelfire:CIA入侵Windows系统的恶意软件
  18. 笔记本外接显示器感觉鼠标有延迟解决办法
  19. 软件工程管理集成了过程管理和项目管理
  20. 为什么说社区团购是美团必须要拿下的市场?

热门文章

  1. 基于安卓的掌上校园系统|食堂缴费图书馆预约【可微信小程序与android studio运行】
  2. 刷脸支付生活中普及太广民众满意度甚高
  3. 局域网病毒入侵原理及防范方法
  4. Linux的快速轻型桌面
  5. phpstorm 突然打开不了了
  6. 2022年ICP许可证申办流程一览
  7. s7 200 smart编程软件是款功能强大的plc编程工具
  8. 不到 20 行 Python 代码即可制作精美证件照!不需要去图文店了!
  9. SpringBoot搭建SSM框架项目,支持JSP页面
  10. ISCA文献翻译:第三篇Efficient Digital Neurons for Large Scale Cortical Architectures