当前位置: 首页 > news >正文

sizeof和strlen的小知识

在这里插入图片描述
Hello~,欢迎大家来到我的博客进行学习!

目录

  • 1.sizeof和strlen😺
    • 1.1 sizeof🥰
  • 1.2 strlen😋
    • 1.3 sizeof和strlen的对比👻

1.sizeof和strlen😺

1.1 sizeof🥰

sizeof是一种单目操作符,计算变量所占内存空间的大小,单位是字节。如果操作数是类型的话,计算的是使用类型的创建的变量所占内存空间的大小。
举例:
现在有一个int类型的a,求a所占空间的大小,单位是字节。

#include<stdio.h>
int main()
{int a = 10;printf("%zd\n", sizeof(a));return 0;
}

运行结果:
在这里插入图片描述
其实放变量本身时,a两边的括号可以不用写。

#include<stdio.h>
int main()
{int a = 10;printf("%zd\n", sizeof a);return 0;
}

运行演示:
在这里插入图片描述

还有另一种写法,()内不写a,直接a对应的类型。

#include<stdio.h>
int main()
{int a = 10;printf("%zd\n", sizeof(int));return 0;
}

运行结果:
在这里插入图片描述

1.2 strlen😋

strlen是C语言的库函数,在使用的时候需要添加头文件string.h,功能是求字符串的长度。
现在我们学习如何使用。现在有一个字符串,我们把它传给strlen就行。

#include<stdio.h>
#include<string.h>
int main()
{size_t len = strlen("abcdef");printf("%zd\n", len);return 0;
}

运行演示:
在这里插入图片描述
分析为什么运行结果是6:
strlen求字符串的长度是通过起始位置一直向后数,一直到\0,统计的是\0之前字符的个数。这里是将字符串首字符的a的地址传给了strlen。之前我们说过char*p =“abcdef"中,a的地址赋给了p,该写法和另一种形式是一样的。

#include<stdio.h>
#include<string.h>
int main()
{char arr[] = "abcdef";size_t len = strlen(arr);printf("%zd\n", len);return 0;
}

运行演示:
在这里插入图片描述

注意:不要忘记strlen是针对字符串的。

1.3 sizeof和strlen的对比👻

在这里插入图片描述现在我们进行演示,加深理解:

#include<stdio.h>
#include<string.h>
int main()
{char arr[3] = { 'a','b','c' };size_t len = strlen(arr);printf("%zd\n", len);return 0;
}

运行演示:
在这里插入图片描述
此时在arr数组中,我们只看见了a,b,c三个字符。相当于在一块长长的内存空间中存放了a,b,c三个字符,这三个字符对应的内存空间就是arr数组。因为内存是一块连续的空间,我们并不知道内存中前后的内容。
在这里插入图片描述
为什么不知道呢?因为这里的空间并不属于这里的arr数组。程序只是向内存空间中申请了三个字节的数组空间,此时前后的空间并不属于该数组,我们并不知道前后内存空间里面是什么。按照strlen的运行方法,在该例子中,它在没有遇到\0之前会一直向后找,此时就出现了越界的行为,得到的值就会是意想不到的值。所以我们提供的字符中需要有\0,strlen才可能得到正确的数字,大家一定不要忘记呀!😝
好了,今天的sizeof和strlen的小知识就分享到这里🥳,大家如果感兴趣,请一键三连!😘如果存在问题,各位大佬请在评论区斧正!🥰十分感谢大家的支持!
在这里插入图片描述

相关文章:

sizeof和strlen的小知识

Hello~,欢迎大家来到我的博客进行学习&#xff01; 目录 1.sizeof和strlen&#x1f63a;1.1 sizeof&#x1f970; 1.2 strlen&#x1f60b;1.3 sizeof和strlen的对比&#x1f47b; 1.sizeof和strlen&#x1f63a; 1.1 sizeof&#x1f970; sizeof是一种单目操作符&#xff0c…...

Java项目: 基于SpringBoot+mybatis+maven宠物咖啡馆平台(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven宠物咖啡馆平台 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单…...

戴尔14代服务器配置IDRAC9远程配置说明

一、规划管理网段 规划管理网段&#xff0c;要求如下&#xff1a; 管理网段与业务网段不能使用同一网段&#xff1b;管理网段与业务网段不能直接互通&#xff1b;如有条件管理网与业务网使用不同设备接入。 二、配置服务器idrac 2.1、确认idrac口位置 2.2、开机进F2 2.3、 …...

如何让你家里的电脑连接公司的远程桌面

在远程工作日益普遍的今天&#xff0c;能够从家里的电脑连接到公司的远程桌面&#xff0c;不仅可以提高工作效率&#xff0c;还能确保工作的连续性和数据的安全性。本文将详细指导你如何设置并实现从家中电脑连接至公司远程桌面的过程&#xff0c;无论你是使用Windows还是Mac系…...

软件:分享8个常用视频剪辑免费软件,你都用过吗?

随着视频剪辑的需求增多&#xff0c;现在市面上都有很多好用的视频剪辑软件&#xff0c;有的收费有的免费&#xff0c;不同的视频剪辑软件有不同的特点和优势。本文整理了几个简单好用的电脑视频剪辑工具&#xff0c;供大家参考。 不同的剪辑技术对应了不同的视频剪辑软件&…...

TS 常用类型

我们经常说TypeScript是JavaScript的一个超级 TypeScript 常用类型 TypeScript 是 JS 的超集&#xff0c;TS 提供了 JS 的所有功能&#xff0c;并且额外的增加了&#xff1a;类型系统 所有的 JS 代码都是 TS 代码 JS 有类型&#xff08;比如&#xff0c;number/string 等&…...

半导体芯闻--20240913

1、舜宇光学在2024年上半年业绩表现亮眼&#xff0c;营收和净利润同比大幅增长。公司资产规模维持较高水平&#xff0c;短期偿债能力强。研发投入持续增加&#xff0c;特别是在车载模组领域取得显著成绩&#xff0c;与多家主流平台方案厂商深度合作&#xff0c;巩固了其在车载模…...

C盘空间不足如何解决?解决C盘空间不足的7个方法

当计算机的C盘&#xff08;通常作为系统盘&#xff09;空间不足时&#xff0c;会严重影响系统的运行效率和稳定性。针对这一问题&#xff0c;以下7个解决方案&#xff0c;可以帮助我们有效释放C盘空间&#xff0c;提升系统性能。 1.磁盘清理 利用Windows内置的磁盘清理工具…...

比 GPT-4 便宜 187 倍的Mistral 7B (非广告)

Mistral 7B 是一种设计用来快速处理较长文本的人工智能模型。它采用了一些特别的技术来提高速度和效率&#xff0c;比如“分组查询注意力&#xff08;grouped-query attention&#xff09;”和“滑动窗口注意力&#xff08;sliding-window attention&#xff09;”。 这些技术…...

FFmpeg与OpenCV联合开发

本文讲述如何利用FFmpeg SDK与OpenCV 从RTSP流中获取图像&#xff08;OpenCV MAT 对象格式&#xff09;。 一&#xff0c;构造RTSP视频流 因为是在本机实验&#xff0c;所以我自己构造了一个RTSP流。如果你有现成的RTSP流也可以的。 实验用的源视频是黑神话悟空的《云宫讯音》…...

Docker 部署 Redis (图文并茂超详细)

部署 Redis ( Docker ) [Step 1] : 拉取 Redis 镜像, 推荐使用 7 的 Redis 版本 docker pull redis:7.0.12[Step 2] : 创建 Redis 相关目录 ➡️ 启动 Redis 容器 ➡️ 拷贝文件 ➡️ 授权文件夹 ➡️ 删除容器 # 创建 Redis 相关目录 mkdir -p /data/redis/{conf,data,log…...

Docker基础-Docker Compose使用

文章目录 一、什么是Docker Compose?常用命令 Docker Compose安装前提条件Linux 上的安装macOS 上的安装Windows 上的安装注意事项启动 Docker Compose 服务 Docker Compose使用Docker Compose 文件基本结构关键概念示例&#xff1a;更复杂的配置注意事项 参考文献 一、什么是…...

GPT撰写开题报告教程——课题确定及文献调研

撰写开题报告是一项复杂而重要的任务&#xff0c;需要涵盖从主题选择到文献综述、研究方法等多个环节。借助AI&#xff0c;如ChatGPT&#xff0c;可以显著提高这一过程的效率以及内容的质量。本文将详细探讨如何一步步利用ChatGPT撰写开题报告。 一、开题报告内容 一个清晰的…...

SprinBoot+Vue高校就业管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…...

【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)

目录 一、引言 二、文本生成&#xff08;text-generation&#xff09; 2.1 概述 2.2 家谱树谱——encoder or decoder is a problem 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 ​​​​​​​ 2.3.3 pipeline返回参数 ​​​​​​​…...

判断当前用户登录时常是否超过两个小时

有一个签到功能需要用户登录时间超过两个小时才可以签到 1. 存储登录时间戳 login() { // 假设这是登录后的操作 const currentTime new Date().getTime(); // 获取当前时间戳 localStorage.setItem(loginTimestamp, currentTime.toString()); // 存储登录时间戳 // 其他…...

nacos明明配置了远程连接地址却一直连接本地的详细配置解释

大家时间都很珍贵&#xff0c;我直接把方法放这 这个是yml文件&#xff0c;我们配置yml文件的时候&#xff0c;一定要把他的服务发现地址写了 这里是针对bootstrap做出的文件&#xff0c;注意名字&#xff0c;要和我们在yml文件里面的spring名字一样 yml discovery:是发现的意…...

Superset二次开发之源码 run-server.sh 分析

背景&#xff1a; 如果基于docker方式部署Superset项目&#xff0c;Dockerfile文件末尾指向了docker-ci.sh&#xff0c;而docker-ci.sh 脚本又指向了run-server.sh。因此我们重点分析一下run-server脚本 路径 docker\run-server.sh #!/usr/bin/env bashHYPHEN_SYMBOL-gunicorn…...

Java 之四种内部类详解

在 Java 中&#xff0c;除了传统的类定义方式之外&#xff0c;还有一种特殊的类定义方式——内部类。内部类定义在另一个类的内部&#xff0c;可以访问外部类的成员&#xff0c;这使得代码更加灵活和可读性更强。本文将详细讲解 Java 中四种内部类的类型&#xff1a;成员内部类…...

03:手动可变电阻

可变电阻 1、电位器2、变阻器/数字电位器2.1&#xff1a;变阻器2.2&#xff1a;数字电位器 3、电位器锥度4、寄生电感/电容 1、电位器 如上图所示&#xff1a;将可变的电阻作为分压器&#xff0c;那么这种可变的电阻就是电位器。例如&#xff1a;将L1连接负极&#xff0c;L3连接…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...