C++中memset函数详解

2023-10-26

  1. memset函数定义于<string.h>头文件中。
    函数原型:
void *memset(void *s,int c,unsigned long n);

函数功能:为指针变量s所指的前n个字节的内存单元填充给定的int型数值c,它可以为任何数据进行初始化。换句话说,就是将数值c以单个字节逐个拷贝的方式放到指针变量s所指的内存中去。 注意:只将数值c的最低一个字节填充到内存。

  1. 示例:
    (1)当c=-1时
#include <iostream>
#include <string.h>
using namespace std;

int main()
{
    int dp[3];
    memset(dp,-1,sizeof(dp));

    for(int i=0;i<3;i++)
        cout << dp[i] << " ";

    return 0;
}

因为-1在计算机中存储为:1111 1111,故dp数组中每一个int值为“1111 1111 1111 1111 1111 1111 1111 1111”,是十进制下的-1。
输出结果:-1 -1 -1

(2)当c=0时

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
    int dp[3];
    memset(dp,0,sizeof(dp));

    for(int i=0;i<3;i++)
        cout << dp[i] << " ";

    return 0;
}

因为0在计算机中存储为:0000 0000,故dp数组中每一个int值为“0000 0000 0000 0000 0000 0000 0000 0000”,是十进制下的0。
输出结果:0 0 0

(3)当c=1时

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
    int dp[3];
    memset(dp,1,sizeof(dp));

    for(int i=0;i<3;i++)
        cout << dp[i] << " ";

    return 0;
}

因为-1在计算机中存储为:0000 0001,故dp数组中每一个int值为“0000 0001 0000 0001 0000 0001 0000 0001”,是十进制下的16843009。
输出结果:16843009 16843009 16843009

(4)当c=268时

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
    int dp[3];
    memset(dp,268,sizeof(dp));

    for(int i=0;i<3;i++)
        cout << dp[i] << " ";

    return 0;
}

因为-1在计算机中存储为: 0001 0000 1100,故dp数组中每一个int值为“0000 1100 0000 1100 0000 1100 0000 1100”,是十进制下的202116108。
输出结果:202116108 202116108 202116108

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++中memset函数详解 的相关文章

  • 有没有办法在 .Net 中创建“自托管”网站? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 类似于 WCF 自托管 有没有办法创建一个在控制台应用程序中 自托管 的网站或dll 提出这个问题的方
  • nUnit Assert.That(method,Throws.Exception) 不捕获异常

    有人可以告诉我为什么这个检查异常的单元测试失败了 显然我真正的测试是检查其他代码 但我使用 Int32 Parse 来显示问题 Test public void MyTest Assert That Int32 Parse abc Thro
  • 调试Windows服务

    Scenario 我有一个用 C 编写的 Windows 服务 我已经阅读了所有关于如何调试它的谷歌线程 但我仍然无法让它工作 我已经运行 PathTo NetFramework InstallUtil exe C MyService ex
  • 在 C# 中,为什么从列表创建 HashSet 比从 HashSet 开始更快?

    我有一个方法 它采用上限 并返回达到该限制的素数列表 public static List
  • 提升解析器中的 Spirit 段错误

    我一直在尝试将我在本科编译器中编写的一些 lex 和 yacc 代码转换为精神代码以学习精神 我发现了一个我似乎无法弄清楚的段错误 我这样写了词法分析器 namespace lex boost spirit lex enum Tokens
  • 访问二维数组的一行末尾之后的元素是否是 UB?

    以下程序的行为是否未定义 include
  • 公开 ASP.NET 用户控件中的复杂属性

    我想从自定义 ASP NET 用户控件公开一个复杂的属性 可以通过aspx页面中的控制标签来设置 像这样的事情 public class TestData public int X public int Y public partial c
  • 阅读 C 语言中的科学记数法

    我正在尝试读取包含以下内容的文件 1 0000000e 01 2 9265380e 03 5 0821200e 02 4 3231640e 01 2 0000000e 01 1 0170240e 04 9 2798610e 02 4 072
  • C# 检查闰年

    我想将输入日期 1 年添加到名为完成日期的列中 如果输入日期是闰年 我需要添加 364 天 如果不是 365 天的话 有没有办法在 c 中检查这一点 使用当前日期时间年份并操作闰年 不操作 然后添加天数 Thanks 您可以使用日期时间 I
  • 无法使用 process.ErrorDataReceived c# 获取进程错误输出

    我已经建立了Form我使用了一段时间的应用程序 现在我想捕捉StandardError我的流程及其standartOutput 我查看了答案SO and MSDN https msdn microsoft com en us library
  • 测试 WebApi 控制器时如何生成 Asp.net 用户身份

    我正在使用 Web API 2 在 web api 控制器中我使用过GetUserId使用 Asp net Identity 生成用户 ID 的方法 我必须为该控制器编写 MS 单元测试 如何从测试项目访问用户 ID 我在下面附上了示例代码
  • MDI应用程序中父窗体的问题

    我使用按钮作为容器中的控件 父窗体 当子窗体出现时 父窗体中的控件 按钮 图片 标签 出现在子窗体上并将其覆盖 我看不到子窗体 有谁知道如何防止这种情况 我不想将这些控件设置为 Control Visible false 因为当我最小化子表
  • C++ 中“return *this”是什么意思?

    我正在将 C 程序转换为 C 但这部分让我感到困惑 return this 是什么意思 template lt EDemoCommands msgType typename PB OBJECT TYPE gt class CDemoMess
  • 如何以编程方式区分不同的 IOException?

    我正在对写入 Process 对象的 StandardInput 流的代码进行一些异常处理 Process 有点像 unix head 命令 它只读取输入流的一部分 当进程终止时 写入线程会失败并显示 IOException The pip
  • 不区分大小写“包含(字符串)”

    有没有办法让下面的返回为真 string title ASTRINGTOTEST title Contains string 似乎没有过载允许我设置区分大小写 目前我将它们都大写 但这很愚蠢 我指的是i18n http en wikiped
  • 如何从与桌面交互的应用程序与 Windows 服务进行通信?

    使用 Net 与服务交互的最佳方式是什么 即大多数托盘应用程序如何与其服务器通信 如果这个方法也是跨平台的 那就更好了 在 Mono 中工作 所以我猜远程处理已经过时了 Edit 忘了说了 我们仍然需要在现场支持 Windows 2000
  • 如何在网格视图中突出显示文本的结果? [复制]

    这个问题在这里已经有答案了 可能的重复 如何突出显示某个单词 https stackoverflow com questions 9546761 how can i highlight a word 我有一个网格视图和一个文本框 用于从列中
  • ASP.Net Core 中没有智能感知

    通过 Visual Studio 安装 ASP Net Core gt 新项目 gt Web gt ASP Net Web 应用程序 gt 确定 gt ASP Net 5 模板 安装后重新启动系统 然后创建一个新项目ASP NET 5 Te
  • 将 tiff 像素长宽比更改为正方形

    我正在尝试对多页 tiff 文件执行条形码识别 但是 tiff 文件是从传真服务器 我无法控制 发送给我的 该服务器以非方形像素长宽比保存 tiff 这导致图像由于纵横比而被严重挤压 我需要将 tiff 转换为方形像素长宽比 但不知道如何在
  • 在 Blazor 中显示计时器

    我正在尝试在服务器端 Blazor 应用程序中显示倒计时器 我的代码同时使用 F 和 C 语言 该代码在某种程度上可以工作 但计时器永远不会按预期停止 并且计时器显示偶尔不会呈现所有数字 这是我第一次尝试 Blazor 服务器端应用程序 我

随机推荐

  • Clumsy-Windows下网络环境模拟工具

    下载页 http jagt github io clumsy cn download 项目的代码可以在github上获取 在下载页面有编译好的版本 强烈建议在使用前花点时间阅读一下文档 来 了解 clumsy 的功能和限制 目前的实现中有一
  • 【概率论与数理统计】猴博士 笔记 p41-44 统计量相关小题、三大分布的判定、性质、总体服从正态分布的统计量小题

    文章目录 统计量相关小题 三大分布的判定 三大分布的性质 总体服从正态分布的统计量小题 统计量相关小题 题干 总体X 有一些样本X1 X2 X3 解法 注意 S的分母是n 1 接下来练习套公式 例1 直接背公式 例2 解 除X S n外有其
  • The illustrated Transformer 笔记

    The illustrated Transformer Transformer是一种使用Attention机制类提升模型训练的速度的模型 该模型的最大优势在于其并行性良好 Transformer模型在Attention is All You
  • IDEA 方法注释 自动获取返回值和传参

    一 设置 1 添加自定义注释快捷键 2 注释内容 desciption params return returns Author junwei Date date time 点击右边的edit variables 设置函数 下面3个内容选择
  • 前端面试题梳理

    一 技术方面 60 1 实现一个元素的水平垂直居中的几种方式 2 vue中 双向绑定的原理 3 vueX的原理 4 实现一个左边固定 右边自适应的布局 5 pomise的理解 6 对浏览器兼容的理解 如何兼容低版本浏览器 7 地址栏输入一个
  • UnityEditor.BuildPlayerWindow+BuildMethodException

    unity3D安卓打包报错 UnityEditor BuildPlayerWindow BuildMethodException 61 errors at UnityEditor BuildPlayerWindow DefaultBuild
  • hive 查询输入中文乱码

    设置 home 用户 profile 文件中LANG en US UTF 8即可
  • envi5.3处理高分二号影像数据详细过程记录

    目录 一 多光谱影像处理 1 辐射定标 2 大气校正 1 需要准备一些数据 2 大气校正过程 3 正射校正 二 全色影像处理 1 辐射定标 2 正射校正 三 图像融合 1 几何配准 2 图像融合 高分二号处理流程 envi5 3的安装教程
  • C3P0的详细配置说明(com.mchange.v2.c3p0.ComboPooledDataSource)

    C3P0是一个开放源代码的JDBC连接池 它在lib目录中与Hibernate一起发布 包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象 c3p0 config gt
  • 使用Pytorch进行多卡训练

    当一块GPU不够用时 我们就需要使用多卡进行并行训练 其中多卡并行可分为数据并行和模型并行 具体区别如下图所示 由于模型并行比较少用 这里只对数据并行进行记录 对于pytorch 有两种方式可以进行数据并行 数据并行 DataParalle
  • 数据库课程设计:图书信息管理系统(Java+MySQL)(附程序)

    期末数据库课程设计做了个图书信息管理系统 由于老师给的选题给得早 所以我在开学后的几周就开学搞了 删删改改整了好多 在此整理分享一下 项目简介 随着社会的发展 人们对知识的需求也在不断增长 书籍作为人们获取并增长知识的只要途径 使得书城 书
  • 如何通过远程桌面重启计算机?

    使用远程桌面连接远程计算机后 在开始菜单中只有 注销 和 关机 选项 无法直接重启现场终端 可以使用命令行重启现场终端 使用运行命令 Windows R键 输入命令行shutdown r t 0 Shutdown r t 5 关闭 重启 延
  • 看尚电视adb安装当贝桌面,并开机自启

    1 链接 可以电脑下奇兔刷机 实用工具里有adb 点开直接用 ADB 链接好后输入命令验证 c adb gt adb devices 如显示 192 168 5555 device字样表示链接成功 不同的adb前面几个字母也许不一样 2 开
  • 每个初级程序员都希望有一天能成为一名高级开发工程师。

    当程序员想要转向更高需求以及更高层次的角色时 他们的能力也必须随之提升 但也正因如此 很多人都会在这种转变中失败 程序员们通常认为 成为一名高级开发工程师必定要积累一定年限的经验以及十分擅长编程 虽然这些的确是必要因素 但想要成为一名高级开
  • 多线程创建的方式

    多线程的创建方式有以下几种 1 继承Thread类创建多线程 继承java lang Thread类 重写Thread类的run 方法 在run 方法中实现运行在线程上的代码 调用start 方法开启线程 Thread 类本质上是实现了 R
  • 【Ubuntu换源教程】不同Ubuntu系统版本换清华源

    今天在新电脑上装了虚拟机VMware Workstation Pro 16 在虚拟机上安装了Ubuntu20 04系统 在做Ubuntu20 04系统换源的时候 发现源要和Ubuntu的版本匹配 之前一直不知道 一直都是盲目换源 版本如果不
  • unity给localRotation赋值

    transform localPosition和transform localScale都是直接赋值三元数 给旋转赋值需要用 方法一 xxx transform localEulerAngles new Vector3 0 0f 0 0f
  • JS面试中常见的算法题

    1 验证一个数是否是素数 1 如果这个数是 2 或 3 一定是素数 2 如果是偶数 一定不是素数 3 如果这个数不能被3至它的平方根中的任一数整除 num必定是素数 而且除数可以每次递增 排除偶数 function isPrime num
  • 优秀logo设计解析_优秀Logo设计!具象表现手法!

    文 王新华 具象标志以客观物象的自然形态为造型基础 经过提炼 概括 抓住客观对象的精神内涵 强化其主要特征 忽略与舍弃次要因素 达到直观 感性的视觉效果 人物形 人是万物之灵 是社会的主宰 以人物为题材是标志设计的重要表现内容 人体的各种动
  • C++中memset函数详解

    memset函数定义于