memset の 那些事儿 (C++)

news2024/10/7 16:24:39

如果你在编程时开了一个数组

int a[100010]

这是后你想把他全部赋值为一个很大的值(可能你用它来取min)

这时候,应该这样写

for (int i = 0; i < 100010; i ++)  a[i] = 0x3f3f3f3f
//0x3f3f3f3f 是一个比较接近int_max的一个数,即1061109567

但是,因为 某些人比较懒  代码的简洁性 我们的主角就闪亮登场了!

memset!!!

(正片开始)

咳咳~~  先等会儿

好像有些小伙伴不知道 0x 是什么?!

0x 就是代表十六进制的意思

0x ...  就代表这个数是十六进制


memset简单介绍

首先memset可以大范围初始化

具体写法是这样

memset(数组名, 初始化的值, sizeof 数组名);

头文件

#include <cstring>

整形(int) memset

首先可以

全部初始化成0

memset(a, 0, sizeof a)

然后是

全部初始化成一个很大的数 (0x3f3f3f3f)

memset(a, 0x3f, sizeof a);

这时候就有眼尖的小伙伴会问啦

“作者作者,不是说好的 0x3f3f3f3f 吗?”

哎,这就是 memset 的一个易错点

memset 啊,它是按字节来初始化的

众所周知,int  一共有 个字节      (不知道 int 多少字节的小伙伴可以戳这个👉 知识空投箱)

所以啊,我们这里只写一个 0x3f,它这样用 0x3f 来初始化 个字节 合在一起就是 0x3f3f3f3f

(一个框一个字节) 

所以下次写 memset 的时候啊,千万别再写 0x3f3f3f3f 

全部初始化成一个很小的数 (-2139062144)

memset(a, 128, sizeof a);

不要问为什么是 128 (我不知道),有dalao知道的话可以在评论区解答

全部初始化成一个-1

memset(a, -1, sizeof a);

这时候就有细心的小伙伴会问啦

“作者作者,不是说只会初始化一个字节嘛?为什么这里初始化 -1 就写 -1 呢?”

这只是一个巧合啊(真的不骗你)

为啥呢

因为,众所周知,-1 在计算机中的二进制(补码)是  32个1

那么,因为 memset 只能初始化一个字节所以是这里的 -1 就是 4个1

然后就发生了一个很有意思的事情

 (一个框一个字节) 


浮点型(double) memset

全部初始化成0

跟整数是一样滴

memset(a, 0, sizeof);

全部初始化成一个很大的数 (1.38e+306)

memset(a, 127, sizeof);

全部初始化成一个很小的数 (2.93e+306) 

memset(a, 128, sizeof);

总结

没啥好总结的,

今天就到这里了,

哈,开玩笑的这里有一张图,包括了我讲的所有操作

 

 

制作不易,留个赞再走吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/904061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习笔记 - 使用VGG16深度学习模型进行图像相似度比较

一、简述 VGG16 是一个强大的预训练模型,可用于识别图像之间的相似性。通过使用该模型,我们可以从不同图像中提取高级特征并进行比较以识别相似性。该技术具有广泛的应用,从图像搜索和推荐系统到安全和监控。 在本文中,将利用该模型来查找两个图像之间的相似性。 …

Win11游戏高性能模式怎么开

1、点击桌面任务栏上的“开始”图标&#xff0c;在打开的应用中&#xff0c;点击“设置”&#xff1b; 2、“设置”窗口&#xff0c;左侧找到“游戏”选项&#xff0c;在右侧的选项中&#xff0c;找到并点击打开“游戏模式”&#xff1b; 3、打开的“游戏模式”中&#xff0c;找…

【汇编语言】栈及栈操作的实现

文章目录 栈结构栈操作栈的小结 栈结构 栈是一种只能在一端插入或删除的数据结构&#xff1b;栈有两个基本的操作&#xff1a;入栈和出栈&#xff1b; 入栈&#xff1a;将一个新的元素放到栈顶&#xff1b;出栈&#xff1a;从栈顶取出一个元素&#xff1b; 栈的操作规则&#…

单晶高温合金收获阶段性应用成果,科研人员已开展定向凝固实验

根据央视报道&#xff0c;中国科学院金属研究所的科研人员对从太空带回的铝硅合金样品进行了初步的解剖分析工作&#xff0c;并计划用不同的实验方法和合金材料继续开展相关实验工作&#xff0c;以进一步探索重力在单晶高温合金凝固过程中的具体作用及相关机理。 值得关注的是&…

ORB-SLAM2学习笔记9之图像帧Frame

先占坑&#xff0c;明天再完善… 文章目录 0 引言1 Frame类1.1 成员函数1.2 成员变量 2 Frame类的用途 0 引言 ORB-SLAM2学习笔记8详细了解了图像特征点提取和描述子的生成&#xff0c;本文在此基础上&#xff0c;继续学习ORB-SLAM2中的图像帧&#xff0c;也就是Frame类&#…

自我管理篇--工作做完了,我能不能到点就下班

以上简历模板资源的排版可能不是最优&#xff0c;但工作经历可以借鉴 工作做完了&#xff0c;我能不能到点就下班&#xff1f; 答案&#xff1a;是&#xff0c;每个人都是自由的 ​ 工作完了&#xff0c;我能不能准点下班&#xff0c;背后真正的问题是:你有没有找到那件让你愿意…

【算法——双指针】LeetCode 11 盛最多水的容器

题目描述&#xff1a; 解题思路&#xff1a; 如图所示&#xff1a; 1、我们考虑相距最远的两个柱子所能容纳水的面积。宽度是两根柱子之间的距离8&#xff1b;高度取决于两根柱子之间较短的那个&#xff0c;即左边柱子的高度3。水的面积就是3824。 2、如果选择固定一根柱子&…

【Linux】传输层协议:UDP和TCP

争做西格玛男人 文章目录 一、UDP协议1.端口号2.理解UDP报头3.UDP的特点&#xff08;面向数据报&#xff0c;全双工&#xff09; 二、TCP协议1.理解TCP报头某些TCP的策略1.1 TCP报头字段&#xff08;TCP的黏包问题&#xff09;1.2 网络协议栈和linux系统的联系&#xff08;以p…

SpringBoot + MyBatis-Plus构建树形结构的几种方式

1. 树形结构 树形结构&#xff0c;是指&#xff1a;数据元素之间的关系像一颗树的数据结构。由树根延伸出多个树杈 它具有以下特点&#xff1a; 每个节点都只有有限个子节点或无子节点&#xff1b;没有父节点的节点称为根节点&#xff1b;每一个非根节点有且只有一个父节点&a…

2023国赛数学建模A题思路模型代码汇总 高教社杯

本次比赛我们将会全程更新思路模型及代码&#xff0c;大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022国赛c题matlab_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛c题matlab_UST数模社…

econml介绍

EconML简介 EconML: A Python Package for ML-Based Heterogeneous Treatment Effects Estimation EconML是一个通过机器学习方法从观察数据中估计heterogeneous treatment effects的Python包。该软件包是微软研究院ALICE项目的一部分&#xff0c;目的是将最新的机器学习方法…

8.5.tensorRT高级(3)封装系列-基于生产者消费者实现的yolov5封装

目录 前言1. yolov5封装总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-基于生产者消费者实现的yolov5封装…

日撸java_day63-65

文章目录 Booster代码运行截图 Booster 代码 package machineLearning.adaboosting;import weka.core.Instances;import java.io.FileReader; import java.util.Arrays;/*** ClassName: WeightedInstances* Package: machineLearning.adaboosting* Description:Weighted inst…

计算机提示mfc120u.dll缺失(找不到)怎么解决

在计算机领域&#xff0c;mfc120u.dll是一个重要的动态链接库文件。它包含了Microsoft Foundation Class (MFC) 库的特定版本&#xff0c;用于支持Windows操作系统中的应用程序开发。修复mfc120u.dll可能涉及到解决与该库相关的问题或错误。这可能包括程序崩溃、运行时错误或其…

DAY23

题目一 给定一个全是小写字母的字符串str.删除多余字符&#xff0c;使得每种字符只保留一个&#xff0c;并让最终结果字符串的字典序最小 str "acbc"&#xff0c; 删掉第一个c&#xff0c; 得到"abc", 是所有结果字符串中字典序最小的。str "dbcacbc…

Python入门教程 | Python简介和环境搭建

Python 简介 Python是一种高级编程语言&#xff0c;由荷兰人Guido van Rossum于1991年创建。它以其简单易学、可读性强和丰富的生态系统而受到广泛喜爱。它被广泛应用于各个领域&#xff0c;包括Web开发、科学计算、数据分析、人工智能等。 Python的特点 简洁易读&#xff1a…

idea新建web项目

步骤一 步骤二 步骤三 新建两个目录lib、classes 步骤四 设置两个目录的功能lib、classes 步骤五 发布到tomcat

docker项目实战

1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘 1&#xff09;拉取mysql:5.6和owncloud镜像 [rootmaster ~]# docker pull mysql:5.6 5.6: Pulling from library/mysql 35b2232c987e: Pull complete fc55c00e48f2: Pull complete 0030405130e3: Pull compl…

MetaMask Mobile +Chrome DevTools 调试Web3应用教程

注&#xff1a;本教程来源网络&#xff0c;根据项目做的整理 写好了WEB3应用&#xff0c;在本地调试用得好好的&#xff0c;但是用钱包软件访问就报莫名的错&#xff0c;但是又不知道是什么原因&#xff0c;排查的过程非常浪费时间 。 因此在本地同一局域网进行调试就非常有必要…