C语言常见概念
目录
第一个C语言程序
main函数
写法:
printf和库函数
printf()函数
库函数
关键字
字符和ASCII码表
字符串和'\0'
转义字符
语句
注释
注释的两种形式
第一个C语言程序
#include<stdio.h>//第一个c语言程序
int main()
{printf("Hello World!\n");return 0;
}
main函数
每一个C语言程序不管有多少行代码,都是从main函数开始执行,也就是说main函数是程序的入口
main函数也叫做主函数,C语言程序不能没有main函数,有且只有一个main函数
即使程序有多个.c文件,也是只有一个main函数
写法:
//1、
int main()
{return 0;
}//2、括号中的void表示main函数无参数
int main(void)
{return 0;
}//3、这种基本不会用到
//main函数其实是有参数的,不想使用的时候就可以不写,需要的时候就写上
int main(int agvc, char* argv[])
{return 0;
}
main前面的int表示main函数执行结束的返回值类型,suoyi会在main函数的最后写"return 0"
有很多初学者第一次在写代码时都会出现以下常见的错误:
1、main写成mian
2、main后面的()漏写了
3、代码中不能使用中文符号
4、每一条语句的结束后面都要有一个分号
printf和库函数
printf()函数
在我们写的第一个C语言程序中会出现这行代码
printf("Hello World!\n");
这行代码中使用到了printf()函数,实现了在屏幕上信息的打印
在这里printf()函数是一个库函数,它的功能就是在屏幕上打印信息,它的全名是:print formet(按照格式打印信息)
只要将要打印的字符串放在双引号中并传递给printf函数就可以打印了
注:在使用库函数的时候要在程序头部写出头文件
这里要用到的是
#include<stdio.h>
库函数
那应该有人会好奇什么是库函数呢?
为了不再重复实现常⻅的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不 同的编译器⼚商根据标准进⾏实现,提供给程序员使⽤。这些函数组成了⼀个函数库,被称为标准 库,这些函数也被称为库函数。在这个基础上⼀些编译器⼚商可能会额外扩展提供部分函数(这些函 数其他编译器不⼀定⽀持)。
⼀个系列的库函数⼀般会声明在同⼀个头⽂件中,所以库函数的使⽤,要包含对应的头⽂件。
关键字
在C语言中有一批保留名字的符号,如:"int"、"return"等,这些符号被称为关键字或保留字
1、关键字都有特殊的意义,是保留给C语⾔使⽤的
2、程序员⾃⼰在创建标识符的时候是不能和关键字重复的
3、关键字也是不能⾃⼰创建的。
常用的32个关键字:
1、auto、 break、 case、 char 、 const 、 continue、 default、 do、 double 、 else、 enum、 extern2、float 、 for、 goto、 if、 int 、 long 、 register、 return、 short 、 signed 、 sizeof 、static3、struct、 switch、 typedef、 union、 unsigned 、 void 、 volatile、 while
字符和ASCII码表
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号括起来的,如:'a','b','@'。
我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语⾔中的字符就遵循了 ASCII 编码的⽅式。
我们不需要将这张表完全背下来,要使用到的时候查看就行,但有些数据是会经常用到的可以好好掌握
1、字符A~Z的ASCII码值从65~90
2、字符a~z的ASCII码值从97~122
3、对应的⼤⼩写字符(a和A)的ASCII码值的差值是32
4、数字字符0~9的ASCII码值从48~57
5、换⾏ \n 的ASCII值是:10
6、在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察
打印部分字符(字符的打印要用到"%c"):
int main()
{for (int i = 32; i <= 127; ++i){printf("%c ", i);if (i % 16 == 15){printf("\n");}}return 0;
}
字符串和'\0'
在C语言中如何表示字符串呢?
使用双括号括起来的一串字符就称为字符串,如:"abcd"就是一个字符串
而字符就用单引号括起来,如'a','b'
字符串的打印格式就用"%s"
int main()
{printf("%s\n", "abcdef");return 0;
}
以上面的代码中字符串为例,"abcdef"中看起来就只有6个字符,但他其实还隐藏了一个”\0“的转义字符,而''\0"是字符串结束的标志
那我们来如何证明"\0"是字符串的结束标志呢?
int main()
{char c1[] = "abcdef";char c2[] = { 'a','b','c','d','e','f' };printf("%s\n", c1);printf("%s\n", c2);return 0;
}
那为什么会出现这种情况呢?
根据这张调试图就可以知道 ,c1的字符串后面有一个'\0',而c2却没有
由此可知:c2中没有表明'\0'的位置,这就意味着打印完c2中的字符后,程序会继续执行,直到遇到一个随机的'\0',才会结束
那如果我们想用c2的形式打印正确的字符就需要将'\0'也输入进去
char c2[]={'a','b','c','d','e','f','\0'};
转义字符
在字符中有一堆特殊的字符就叫做转义字符,在前面我们所讲到的'\n'、'\0'就是转义字符
转义字符:顾名思义就是转变原来意思的字符
由上面的程序及运行结果可知,一个'n'在'\'的修饰后,意思就发生了变化,从一个不同的字符变为转定义为换行的意思
然而在C语言中许多转义字符:
\? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证
\' :⽤于表⽰字符常量'
\" :⽤于表⽰⼀个字符串内部的双引号
\\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符
\a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣
\b :退格键,光标回退⼀个字符,但不删除字符
\n :换⾏符
\t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数
\ddd :d d d表⽰1~3个⼋进制的数字
\xdd :d d表⽰2个⼗六进制数字
\t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数
\ddd :d d d表⽰1~3个⼋进制的数字,如:'\130'=1*8^2+3*8^1+0*8^0=88=X
根据这个转义字符可知,'\0'其实就是它的一种,是null字符,表示无内容
在字符串printf()打印或用strlen()计算字符串长度时,遇到'\0'就停止
\xdd :d d表⽰2个⼗六进制数字,如:'\x30'=3*16^1+0*16^0=48=0
注:
转义字符也是字符的一种,所以在计算字符串长度的是会算做一个字符
语句
C语言的代码是由一条一条语句组成,而C语言中语句可以分为以下五类:
1、空语句
2、表达式语句
3、函数调用语句
4、复用语句
5、控制语句
空语句:这种是最简单,一个分号就是一条语句,就是空语句
int main()
{;return 0;
}
空语句的使用场景:一般是出现在这个地方需要一条语句,而这个语句不需要做任何事情,就可以在这里写一条空语句
表达式语句:就是在表达式后面加上分号
int main()
{int a=1,b=2;a=b+1;return 0;
}
函数调用语句:在函数调用的时候,也会在后面加上分号,那这就是函数调用语句
#include <stdio.h>int Add(int x, int y)
{return x+y;
}int main()
{printf("hehe\n");//函数调⽤语句int ret = Add(2, 3);//函数调⽤语句 return 0;
}
复合语句:就是前面讲过的代码块,成对括号中的代码就构成一个代码块,也被称为复合函数
#include<stdio.h>
void print(int arr[], int sz) //函数的⼤括号中的代码也构成复合语句
{int i = 0;for(i=0; i<sz; i++){printf("%d ", arr[i]);}
}
int main()
{int i = 0;int arr[10] = {0};for(i=0; i<10; i++) //for循环的循环体的⼤括号中的就是复合语句{arr[i] = 10-i;printf("%d\n", arr[i]);}return 0;
}
控制语句:该语句用于控制程序的执行流程,以实现程序的各种结构方式(C语⾔⽀持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语有九种控制语句。
可分成以下三类:
1. 条件判断语句也叫分⽀语句:if语句、switch语句;
2. 循环执⾏语句:do while语句、while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句。
这里就不多缀叙,后面的文章会讲解到
注释
注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。
注释的两种形式
1、/**/
2、//
注:
在程序编译时,注释会被替换成一个空格,这就是/**/这种注释方式可以在插在行内
两种方式都不能放在双引号中,放在双引号中会变成字符串的一部分,解释为普通符号,失去注释作用
相关文章:
C语言常见概念
目录 第一个C语言程序 main函数 写法: printf和库函数 printf()函数 库函数 关键字 字符和ASCII码表 字符串和\0 转义字符 语句 注释 注释的两种形式 第一个C语言程序 #include<stdio.h>//第一个c语言程序 int main() {printf("Hello World…...
sql字符串函数及字符拼接函数
concat(str1,str2)函数:拼接字符串 UPPER(str):字符串变成大写 LOWER(str):字符串变小写 LENGTH(str):获取字符串的长度 left(str,len):获取字符串左边len个字符 right(str,len):获取字符串右边len个字符 s…...
Qt的QTableWidget类的声明定义和使用
QTableWidget类的声明定义 QTableWidget 是 Qt 框架中的一个类,它继承自 QAbstractItemView 并提供了用于显示和操作二维表格数据的接口。这个类不是由用户直接声明的,而是由 Qt 库提供的。你可以在你的 Qt 应用程序中通过包含相应的头文件来使用它。 …...
【kafka实战】06 kafkaTemplate java代码使用示例
在 Spring Boot 中使用 KafkaTemplate 可以方便地向 Kafka 发送消息。下面为你详细介绍使用步骤和示例代码。 1. 创建 Spring Boot 项目 你可以使用 Spring Initializr(https://start.spring.io/ )来创建一个新的 Spring Boot 项目,添加以下…...
使用C#开发一款通用数据库管理工具
由于经常使用各种数据库,笔者自己动手丰衣足食,使用C#开发了一款通用数据库管理工具,支持Mysql、Oracle、Sqlite、SQL Server等数据库的表、视图、存储过程、函数管理功能,并支持导入导出、数据字典生成、拖拽式跨机器跨库数据一键…...
90.子集||
要求所有可能的子集,不能重复,因此对于相同的数字,要考虑去重,去重的方式就是通过排序,排序后相同的数字相邻,这样进行实现迭代时,若没有选择上一个数,,其当前数字与上一…...
windows phpstudy python cgi配置
修改apache配置文件:httpd.conf 搜索’Define SRVROOT’, 查看cgi根目录,python脚本需要放在该 Define SRVROOT "D:/Program/phpstudy_pro/Extensions/Apache2.4.39解决中文乱码 文件最后添加AddDefaultCharset gbk 重启apache python脚本: #!py…...
Java 大数据与区块链的融合:数据可信共享与溯源(45)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
Axure PR 9 动效 设计交互
大家好,我是大明同学。 这期内容,我们来用Axure制作一组动效。 动效 创建动效元件 1.打开一个新的 RP 文件并在画布上打开 Page 1。 2.选中画布,将画布填充颜色设置为蓝色(#0052D9)。 3.在元件库中拖出一个圆形元件,选中矩形元件&…...
element-plus+vue3前端如何根据name进行搜索查到符合条件的数据
界面如图,下面的区域是接口给的所有的,希望前端根据输入的内容自己去匹配。 我是使用的element-plusvue3ts的写法。 <el-input v-model"filters.region" placeholder"输入区域搜索" keyup"filterRegion(filters.region)&q…...
hot100-day1
1. 两数之和 - 力扣(LeetCode) class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> map1;for(int i0;i<nums.size();i) map1[nums[i]] i;for(int i0;i<nums.size();i){…...
webrtc编译需要常用环境变量以及相关名词解释
set vs2022_installD:\\vs2022 set GYP_MSVS_OVERRIDE_PATHD:\\vs2022 set GYP_GENERATORSmsvs-ninja,ninja set WINDOWSSDKDIRD:\\Windows Kits\10 set DEPOT_TOOLS_WIN_TOOLCHAIN0 set GYP_MSVS_VERSION2022 这些环境变量是为了编译 WebRTC 时让 GYP/Depot Tools 正确找到 V…...
PostgreSQL函数自动Commit/Rollback所带来的问题
一、综述 今天在PostgreSQL遇到一个奇怪的现象,简而言之,是想用函数(存储过程)实现插入记录,整个过程没报错但事后却没找到记录!忙活半天,才发现原因是PostgreSQL函数(存储过程&…...
开源项目介绍-词云生成
开源词云项目是一个利用开源技术生成和展示词云的工具或框架,广泛应用于文本分析、数据可视化等领域。以下是几个与开源词云相关的项目及其特点: Stylecloud Stylecloud 是一个由 Maximilianinir 创建和维护的开源项目,旨在通过扩展 wordclou…...
VSCode设置——通过ctrl+鼠标滚动改变字体大小(新版本的vs)
"editor.mouseWheelZoom": true 第一步: 第二步:...
多种蝴蝶识别分割数据集labelme格式784张9类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):784 标注数量(json文件个数):784 标注类别数:9 标注类别名称:["Monarch","Zebra Longwing"…...
DeepSeek R1本地化部署 Ollama + Chatbox 打造最强 AI 工具
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 Ollama 🦋 下载 Ollama🦋 选择模型🦋 运行模型🦋 使用 && 测试 二:🔥 Chat…...
SqlSugar简单使用之Nuget包封装-Easy.SqlSugar.Core
SqlSugar官方文档 Nuget包开源地址 Nuget包是为了简化SqlSugar的使用步骤,增加一些基础的使用封装 引入分为两个版本,一个Ioc模式,另一个是注入模式,如果不想影响原本的仓储代码推荐使用Ioc模式,两者区别不到,方法通…...
论文解读 | NeurIPS'24 Spotlight ChronoMagic-Bench 评估文本到视频生成的质变幅度评估基准...
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 袁盛海,北京大学硕士一年级学生 内容简介 本文提出了一种新颖的文本到视频(T2V)生成基准ChronoMagic-Bench࿰…...
12.1 LangChain数据处理流Data Connection深度解析:构建高效数据管道的五大核心组件
LangChain数据处理流Data Connection深度解析:构建高效数据管道的五大核心组件 一、Data Connection模块的战略定位 LangChain的Data Connection模块是大模型应用的数据中枢,其核心价值在于将非结构化数据转化为大模型可理解的语义知识。传统数据处理的三大痛点在此得到完美…...
文件基础IO
理解"文件" 1-1 狭义理解 文件在磁盘里磁盘是永久性存储介质,因此文件在磁盘上的存储是永久性的磁盘是外设(即是输出设备也是输入设备)磁盘上的文件 本质是对文件的所有操作,都是对外设的输入和输出简称IO 1-2 广义理…...
ASP.NET Core筛选器Filter
目录 什么是Filter? Exception Filter 实现 注意 ActionFilter 注意 案例:自动启用事务的筛选器 事务的使用 TransactionScopeFilter的使用 什么是Filter? 切面编程机制,在ASP.NET Core特定的位置执行我们自定义的代码。…...
Java 中的 Spring 框架,以及 Spring Boot 和 Spring Cloud 的区别?
Spring框架是一个开源的Java平台,主要用于简化企业级应用程序的开发。 它通过提供一系列的功能模块,帮助开发者解决常见的编程难题,从而提高开发效率和代码质量。 Spring框架的核心思想是“控制反转”(IoC)和“面向切…...
Rplayer:手机上的本地音乐播放智能之选
在众多本地音乐播放器中,Rplayer凭借其卓越的功能脱颖而出。它不仅能够精准识别本地下载的音乐文件,更以其智能化的设计为用户带来极致的便捷体验。 Rplayer的真正亮点在于其强大的自动扫描功能。与市面上其他播放器不同,Rplayer无需用户手动…...
vue2-插槽slot
文章目录 vue2-插槽slot1. 什么是slot2. slot分类2.1 默认插槽2.2 具名插槽2.3 作用域插槽 vue2-插槽slot 1. 什么是slot 在vue中,slot翻译为插槽,简单点说,就是在子组件内放置一个插槽,等待父组件在使用子组件的时候决定放什么…...
二级C语言题解:整数序列奇偶个数、拼接数字字符、数组取偶数并加小数点
目录 一、程序填空📝 --- 整数序列奇偶个数 题目📃 分析🧐 二、程序修改🛠️ --- 拼接数字字符 题目📃 分析🧐 三、程序设计 💻 --- 数组取偶数并加小数点 题目📃 分析&…...
VUE之组件通信(三)
1、$refs与$parent 1)概述: $refs用于:父——>子。$parent用于:子——>父。 2)原理如下: 属性说明$refs值为对象,包含所有被ref属性标识的DOM元素或组件实例。$parent值为对象&#x…...
Airflow:深入理解Apache Airflow Task
Apache Airflow是一个开源工作流管理平台,支持以编程方式编写、调度和监控工作流。由于其灵活性、可扩展性和强大的社区支持,它已迅速成为编排复杂数据管道的首选工具。在这篇博文中,我们将深入研究Apache Airflow 中的任务概念,探…...
【号码分离】从Excel表格、文本、word文档混乱文字中提取分离11位手机号出来,基于WPF的实现方案
应用场景 在市场调研过程中,可能会收集到大量的 Excel 表格、文本报告或 Word 文档,其中包含客户的联系方式。通过提取手机号,可以方便后续的市场推广和客户跟进。 当从不同渠道收集到的数据中包含混乱的文字信息时,需要从中提取…...
【分布式架构理论2】分布式架构要处理的问题及解决方案
文章目录 1. 应用服务拆分2. 分布式调用3. 分布式协同4. 分布式计算5. 分布式存储6. 分布式资源管理与调度7. 高性能与可用性优化8. 指标与监控 将分布式架构需要解决的问题按照顺序列举为如下几步 问题分类具体内容应用服务拆分分布式是用分散的服务和资源代替集中的服务和资…...
WPS计算机二级•幻灯片的输出、打印与分享
听说这是目录哦 打印界面讲解⭐所有页面 一键添加公司LOGO🌟将多张幻灯片 打印在一张纸🌠将PPT内容 以讲义形式打印出来☄️打印 黑白色的幻灯片🪐协作编辑模式🌈将PPT输出为图片💖能量站😚 打印界面讲解⭐…...
Java数据结构与算法之“树”
目录 一、什么是树 编辑 二、树的相关组成 1. 常用名词 2.需要了解的名词 三、树的分类 (一)初级树 1.普通树 2.二叉树 (二)中级树 1.哈夫曼树HuffmanTree 2.二叉搜索树BST 3.平衡二叉树AVL (三&#x…...
嵌入式八股文面试题(一)C语言部分
1. 变量/函数的声明和定义的区别? (1)变量 定义不仅告知编译器变量的类型和名字,还会分配内存空间。 int x 10; // 定义并初始化x int x; //同样是定义 声明只是告诉编译器变量的名字和类型,但并不为它分配内存空间…...
FPGA的IP核接口引脚含义-快解
疑问 手册繁琐,怎样快速了解IP核各输入输出接口引脚的含义。 答疑 不慌不慌,手册确实比较详细但繁琐,如何快速知晓该部分信息,涛tao道长给你们说,简单得很,一般新入门的道友有所不知,往往后面…...
Web3技术详解
Web3技术代表着互联网技术的最新进展,它致力于打造一个去中心化的互联网生态系统。以下是对Web3技术的详细解析: 一、Web3技术的核心概念 Web3是第三代互联网技术的代名词,代表着去中心化、区块链驱动和用户自有控制的理念。在Web3的世界中…...
计算机网络之物理层通信基础(电路交换、报文交换与分组交换)
一、电路交换 工作原理: 电路交换是在数据传输期间,源结点与目的结点之间建立一条由中间结点构成的专用物理连接线路,并在数据传输结束之前保持这条线路。整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。 特点&am…...
Linux firewalld开启日志审计功能(2)
在Firewalld防火墙中启用和配置logdenied选项,记录被拒绝的数据包(等同于开启日志功能) 效果展示: 1.开启日志记录功能 firewall-cmd --set-log-deniedunicast #重新加载生效配置 firewall-cmd --reload 2.配置rsyslog捕获日志…...
线程池如何知道一个线程的任务已经执行完成
一、线程池内部任务执行状态监控 在线程池内部,当我们提交一个任务后,线程池会调度一个工作线程来执行该任务的run方法。确实,当run方法正常结束时,意味着任务已经完成。线程池中的工作线程是同步调用任务的run方法,并…...
09网络深入连贯篇(D1_彻底理解长连接 短连接(一))
目录 讲解一:长连接 & 短连接 一、初次见证长连接和短连接 1. 长连接 2. 短连接 二、如何区分当前连接是长连接还是短连接? 三、如何查询长连接和短连接? 四、那么长连接与短连接操作过程又是如何呢? 五、各自优缺点 …...
ElasticSearch学习笔记-解析JSON格式的内容
如果需要屏蔽其他项目对Elasticsearch的直接访问操作,统一由一个入口访问操作Elasticsearch,可以考虑直接传入JSON格式语句解析执行。 相关依赖包 <properties><elasticsearch.version>7.9.3</elasticsearch.version><elasticsea…...
网络计算机的五个组成部分
单个计算机是无法进行通信的。所以需要借助网络。 下面介绍一些在网络里常见的设备。 一、服务器 服务器是在网络环境中提供计算能力并运行软件应用程序的特定IT设备 它在网络中为其他客户机(如个人计算机、智能手机、ATM机等终端设备)提供计算或者应用…...
责任链模式(Chain Responsibility)
一、定义:属于行为型设计模式,包含传递的数据、创建处理的抽象和实现、创建链条、将数据传递给顶端节点; 二、UML图 三、实现 1、需要传递处理的数据类 import java.util.Date;/*** 需要处理的数据信息*/ public class RequestData {priva…...
在游戏本(6G显存)上本地部署Deepseek,运行一个14B大语言模型,并使用API访问
在游戏本6G显存上本地部署Deepseek,运行一个14B大语言模型,并使用API访问 环境说明环境准备下载lmstudio运行lmstudio 下载模型从huggingface.co下载模型 配置模型加载模型测试模型API启动API服务代码测试 deepseek在大语言模型上的进步确实不错…...
web-JSON Web Token-CTFHub
前言 在众多的CTF平台当中,作者认为CTFHub对于初学者来说,是入门平台的不二之选。CTFHub通过自己独特的技能树模块,可以帮助初学者来快速入门。具体请看官方介绍:CTFHub。 作者更新了CTFHub系列,希望小伙伴们多多支持…...
CTF-web: fs.readFileSync特殊利用
URL类 URL 类是 JavaScript 的内置类(或对象),它用于处理和解析 URL(统一资源定位符)。URL 是 Web API 的一部分,广泛应用于浏览器环境和 Node.js 中。 特性 构造函数: URL 类的构造函数可以接受一个 URL…...
深入探索 C++17 特征变量模板 (xxx_v)
文章目录 一、C++类型特征的前世今生二、C++17特征变量模板闪亮登场三、常见特征变量模板的实际应用(一)基本类型判断(二)指针与引用判断四、在模板元编程中的关键作用五、总结与展望在C++的持续演进中,C++17带来了许多令人眼前一亮的特性,其中特征变量模板(xxx_v)以其…...
时间序列分析(一)——基础概念篇
一、时间序列的相关概念 定义:时间序列是按时间顺序排列的一系列观测值,通常以固定间隔(如秒、天、年)记录。而时间序列分析是一种研究按时间顺序排列的数据点的统计方法,发现趋势、季节性波动、周期性和异常等模式&a…...
贪心与单调栈的艺术:从三道 LeetCode 题看最小字典序问题(316/402/1081)
前言 欢迎来到我的算法探索博客,在这里,我将通过解析精选的LeetCode题目,与您分享深刻的解题思路、多元化的解决方案以及宝贵的实战经验,旨在帮助每一位读者提升编程技能,领略算法之美。 👉更多高频有趣Lee…...
rabbitMQ消息转换器
消息转换器 Spring的消息发送代码接收的消息体是一个Object: 而在数据传输时,它会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。 只不过,默认情况下Spring采用的序列化方式是J…...
力扣-字符串-541 反转字符串Ⅱ
思路 和《反转字符串》的代码类似,只是每次处理2k个 代码 class Solution { public:string reverseStr(string s, int k) {int length s.length();int reverse 0;while(reverse < length){int left, right;if(reverse k < length){left reverse, right…...