蓝桥杯基础知识3 memset()

news2024/11/17 21:26:43

蓝桥杯基础知识3 memset()

#include <bits/stdc++.h>
using namespace std;

int main(){
	int a[5];	//随机数
	for(int i = 0;i < 5; ++i)cout << a[i] << '\n';
	cout << '\n';
	
	memset(a, 0, sizeof a);	//0
	for(int i = 0;i < 5; ++i)cout << a[i] << '\n';
	cout << '\n';
	
	memset(a, -1, sizeof a);	//-1
	for(int i = 0;i < 5; ++i)cout << a[i] << '\n';
	cout << '\n';
	
	memset(a, 1, sizeof(a));	//16843009
	for(int i = 0;i < 5; ++i)cout << a[i] << '\n';
	cout << '\n';
	
	for(int i = 0;i < 5; ++i)cout << bitset<32>(a[i]) << '\n';
	cout << '\n';	//4*8位=32位:00000001000000010000000100000001
					//					1		1		1		1
	
	memset(a, 0x3f, sizeof(a));	//0x表示16进制,1061109567
	for(int i = 0;i < 5; ++i)cout << a[i] << '\n';
	cout << '\n';
	
	for(int i = 0;i < 5; ++i)cout << bitset<32>(a[i]) << '\n';
	cout << '\n';	//4*8位=32位:00111111001111110011111100111111
					//              3   f   3   f   3   f   3   f
	
	
	return 0;
}


C++ 在线工具 | 菜鸟工具 (runoob.com)

原码,反码,补码相互转换在线计算器 (23bei.com)

8位的系统中-1 补码为8个1,即11111111;0的补码是00000000

memset()是一个用于设置内存块值的函数。定义在<cstring>头文件中。函数声明:

void* memset(void*ptr, int value, size_t num);

//                      指针           值        重置大小

ptr:指向要设置值的内存块的指针。

value:要设置的值,通常是一个整数。

num:要设置的字节数。

memset()将ptr指向的内存块的前num个字节设置为value的值,返回一个指向ptr的指针。

memset() 的作用是在一段内存块中填充某个给定的值。

memset(arr, 0, sizeof(arr)) 或 memset(arr, 0, sizeof arr)将数组arr的所有元素设置为0.

对于非字符类型的数组可能产生未定义行为。memset会将每个byte设置成value。

char ~ 8bit ~ 1 Byte        int ~ 32bit ~ 4Byte

value = 1,二进制表示:00000001 00000001 00000001 00000001

//n必须为宏或者constexpr
int arr[n] = {0};    

​C/C++基础语法 定义一个数组并初始化为0 

//int arr[n];
arr[n] = {0};

把数组后面的一块大小为sizeof(int)的内存复制为0,这块内存不属于数组,具体执行结果与内存结构有关,属于典型未定义行为。

#include <bits/stdc++.h>
using namespace std;

int main(){
	int n = 5;
	
	int b[n] = {};
	for(int i = 0; i < 2*n; ++i)cout << b[i] << ' ';
	cout <<'\n';
	
	int a[n];
	a[n] = {0};
	for(int i = 0; i < 2*n; ++i)cout << a[i] << ' ';
	cout <<'\n';
	
	//0 0 0 0 0 32553 1101044968 32553 1101043616 32553 
	//-2129291136 32764 0 10 0 0 4198995 0 0 0 	
	
	int m = 4;
	
	int c[m] = {};
	for(int i = 0; i < 2*m; ++i)cout << c[i] << ' ';
	cout <<'\n';
	
	int d[m];
	d[m] = {0};
	for(int i = 0; i < 2*m; ++i)cout << d[i] << ' ';
	
	//0 0 0 0 -2129291136 32764 0 10 
	//0 0 4199454 0 0 0 0 0 

	return 0;
}

reference:

原码和补码之间的相互转化 - 知乎 (zhihu.com)

为什么0的补码形式只有一种?-CSDN博客​​​​​​

c++ - What's the difference between constexpr and const? - Stack Overflow

浅谈 C++ 中的 const 和 constexpr - 知乎

C 库函数 – memset() | 菜鸟教程 (runoob.com)

C++中memset(a, 0, sizeof(a))和a[n] = {0}有什么本质上的区别? - 知乎 (zhihu.com)

C++中memset()函数的用法详解_c++如果a数组是int类型,则memset是以每4个字节为一组赋值-CSDN博客

memset函数及其用法,C语言memset函数详解 (biancheng.net)

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

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

相关文章

Proteus仿真stm32f103r6输出PWM/正弦波

资料下载地址&#xff1a;Proteus仿真stm32f103r6输出PWM/正弦波 一、仿真图 Proteus仿真stm32f103r6输出PWM/正弦波 二、程序 #include "pbdata.h"u16 fre; void RCC_Configuration(void); void GPIO_Configuration(void); void TIM3_Configuration();void Dela…

Kotlin程序设计(三)高级用法

Kotlin程序设计高级篇 在学习了前面的内容之后&#xff0c;相信各位小伙伴应该对Kotlin这门语言有了一些全新的认识&#xff0c;我们已经了解了大部分的基本内容&#xff0c;从本章开始&#xff0c;就是对我们之前所学的基本内容的进一步提升。 泛型 在前面我们学习了最重要…

【信息论与编码】【北京航空航天大学】实验二、哈夫曼编码【C语言实现】(下)图像编码压缩

实验2 哈夫曼编码&#xff08;下&#xff09;&#xff08;图像编码&#xff09; 实验简介&#xff1a; 本次实验为实验1&#xff1a;哈夫曼编码的后续补充&#xff0c;实验1见博客&#xff1a;实验一、哈夫曼编码【C语言实现】&#xff08;上&#xff09; 说明&#xff1a; 实…

Redis系列-15.Redis的IO多路复用原理解析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

【REST2SQL】05 GO 操作 达梦 数据库

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 信创要求用国产数据库&#xff0c;刚好有项目用的达梦&#xff0c;研究一下go如何操作达梦数据库 1 准备工作 1.1 安…

查询速度提升15倍!银联商务基于 Apache Doris 的数据平台升级实践

本文导读&#xff1a; 在长期服务广大规模商户的过程中&#xff0c;银联商务已沉淀了庞大、真实、优质的数据资产数据&#xff0c;这些数据不仅是银联商务开启新增长曲线的基础&#xff0c;更是进一步服务好商户的关键支撑。为更好提供数据服务&#xff0c;银联商务实现了从 H…

关于高通Android 平台上qssi的介绍

1. QSSI 是 Qualcomm Single System Image 的缩写。 2. Android Q上开始支持QSSI。 3. QSSI 是用来编译system.img的 3.1 QSSI编译注意事项 lunch qssi ------ 编译system.img lunch target ------ 编译其余的image 3.2 有QSSI和没有QSSI的编译流程对比 没有QS…

3Dmax不能渲染怎么办?

使用3Dmax渲染异常的话&#xff0c;主要在于以下几点&#xff1a; 1.素材丢失导致渲染效果错误 max文件贴图丢失或对应路径不存在 2.相机位置 先要考虑是相机位置&#xff0c;不管用的普通相机还是物理相机。 看它的位置是不是放在了模型的里面或者是墙体的外面&#xff0c;…

如何构建Prompt,帮我生成QA,作为召回率检索的测试集?

最近在做搜索召回率的提升工作。粮草未动兵马先行&#xff01;在做之前应该先有一把尺子来衡量召回率的好坏。所以应该先构建测试数据集&#xff0c;然后去做标准化测试。 有了测试机集以后。再去做搜索优化&#xff0c;才能看出来效果。 当然可以选择一些开源的测试集。如果可…

“三指针法“合并两个有序数组(力扣每日一练)

我的第一想法确实是&#xff1a;先合并数组&#xff0c;再排序&#xff0c;搞完。 哈哈哈&#xff0c;想那么多干嘛&#xff0c;目的达成了就好了。 力扣官方题解是双指针&#xff1a; 还有糕手&#xff1a; Python&#xff1a; def merge(nums1, m, nums2, n):# 两个指针分别…

合并 K 个升序链表[困难]

一、题目 给你一个链表数组&#xff0c;每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如…

经管类CSSCI、北核期刊投稿指南数据(2023年更新)/经管类的期刊投稿指南

经管类CSSCI、北核期刊投稿指南&#xff08;2023年更新&#xff09; 1、内容包括&#xff1a;投稿指南-CSSCI版本、CSSCI扩展版本、北大核刊版本、建议期刊版本、所有期刊。 2、范围&#xff1a;CSSCI、CSSCI扩展、北大核刊 3、说明&#xff1a;包含经管类期刊的发表难度&am…

Spark六:Spark 底层执行原理SparkContext、DAG、TaskScheduler

Spark底层执行原理 学习Spark运行流程 学习链接&#xff1a;https://mp.weixin.qq.com/s/caCk3mM5iXy0FaXCLkDwYQ 一、Spark运行流程 流程&#xff1a; SparkContext向管理器注册并向资源管理器申请运行Executor资源管理器分配Executor&#xff0c;然后资源管理器启动Execut…

Day4Qt

1.头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime>//时间类 #include <QTimer>//时间事件类 #include <QTimerEvent>//定时器类 #include <QTextToSpeech> namespace Ui { class Widget; }class Widget : publi…

Leetcode2982. 找出出现至少三次的最长特殊子字符串 II

Every day a Leetcode 题目来源&#xff1a;2982. 找出出现至少三次的最长特殊子字符串 II 解法1&#xff1a;字符串分割 分类讨论 按照相同字母分组&#xff0c;每组统计相同字母连续出现的长度。例如 aaaabbbabb 把 a 分成一组&#xff0c;组内有长度 4 和长度 1&#x…

2022-ECCV-Explaining Deepfake Detection by Analysing Image Matching

一、研究背景 1.大量工作将深度伪造检测作为一个二分类任务并取得了良好的性能。 2.理解模型如何在二分类标签的监督下学习伪造相关特征仍难是个艰巨的任务。 3.视觉概念&#xff1a;具有语义的人脸区域&#xff0c;如嘴、鼻子、眼睛。 二、研究目标 1.验证假设&#xff0c;并…

centos8部署MySQL5.7故障集

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 在centos8系统上安装MySQL&#xff0c;使用的是centos7上安装MySQL的脚本&#xff0c;出现了以下问题&#xff0c;以做记录&…

Spark原理——逻辑执行图

逻辑执行图 明确逻辑计划的边界 在 Action 调用之前&#xff0c;会生成一系列的RDD,这些RDD之间的关系&#xff0c;其实就是整个逻辑计划 val conf new SparkConf().setMaster("local[6]").setAppName("wordCount_source") val sc new SparkContext(conf)v…

多测师肖sir___ui自动化测试po框架讲解版

po框架 一、ui自动化po框架介绍 &#xff08;1&#xff09;PO是Page Object的缩写 &#xff08;2&#xff09;业务流程与页面元素操作分离的模式&#xff0c;可以简单理解为每个页面下面都有一个配置class&#xff0c; 配置class就用来维护页面元素或操作方法 &#xff08;3&am…

20240111在ubuntu20.04.6下解压缩RAR格式的压缩包

20240111在ubuntu20.04.6下解压缩RAR格式的压缩包 2024/1/11 18:25 百度搜搜&#xff1a;ubuntu rar文件怎么解压 rootrootrootroot-X99-Turbo:~/temp$ ll total 2916 drwx------ 3 rootroot rootroot 4096 1月 11 18:28 ./ drwxr-xr-x 25 rootroot rootroot 4096 1月…