(C语言)sizeof和strlen的对比(详解)

sizeof和strlen的对⽐(详解)

1. sizeof

sizeof是用来计算变量所占内存空间大小的, 单位是字节,如果操作数是类型的话,计算的是用类型创建的变量所占空间的大小。
sizeof 只关注占用内存空间的大小 ,不在乎内存中存放什么数据。
当sizeof操作对象是变量名时,可以不加括号,从不加()就可以看出sizeof不是函数,函数是必须加()的,这一点经常有人记错,误以为sizeof是函数要注意。

2. strlen

strlen是C语言的库函数,头文件是string.h功能是求字符串长度,函数原型:

统计的是从  strlen 函数的参数 str 中这个地址开始向后  \0 之前字符串中字符的个数。

函数会一直向后找 \0 字符 ,直到找到为止 ,所以可能存在越界查找。

我们来看看i下面的代码:

运行结果:

arr1与arr2数组初始化方式不同,arr1中abc结尾没有\0,但是arr2后面面有\0,所以用strlen算arr1输出的是15是个随机值。不同电脑上的结果也不相同。

3 sizeof 和 strlen的对比

还有不懂得可在评论区提问,笔者看到会第一时间帮忙解答。

感谢观看,感谢指正

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

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

相关文章

Linux——网络基础

计算机网络背景 网络发展 独立模式: 计算机之间相互独立 在早期的时候,计算机之间是相互独立的,此时如果多个计算机要协同完成某种业务,那么就只能等一台计算机处理完后再将数据传递给下一台计算机,然后下一台计算机再进行相应…

YOLOv9推理详解及部署实现

目录 前言零、YOLOv9简介一、YOLOv9推理(Python)1. YOLOv9预测2. YOLOv9预处理3. YOLOv9后处理4. YOLOv9推理 二、YOLOv9推理(C)1. ONNX导出2. YOLOv9预处理3. YOLOv9后处理4. YOLOv9推理 三、YOLOv9部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX…

软件设计师9--总线/可靠性/性能指标

软件设计师9--总线/可靠性/性能指标 考点1:总线总线的分类例题: 考点2:可靠性系统可靠性分析--可靠性指标串联系统与并联系统N模混合系统例题: 性能指标例题: 考点1:总线 一条总线同一时刻仅允许一个设备发…

Stable Diffusion 模型分享:CG texture light and shadow(CG纹理光影)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 一个拥有cg质感和光影的融合模型,偏2.5D 条目内容类型大模型基础模型SD 1.5来…

HTML+CSS+BootStrap游乐园官网

一、技术栈 支持pc、pad、手机访问,页面自适应!! html5cssbootstrapjs 二、项目截图 接受项目定制,站内联系博主!!!

【打工日常】使用docker部署轻量的运维监控工具

一、Uptime-Kuma介绍 Uptime-Kuma是一个轻量级的自动化运维监控工具,最为引人注目的特点是其出色的监控Dashboard面板。部署简单,工具轻量又强大。而且,Uptime-Kuma是开源免费的,并支持基于Docker的部署方式。它支持网站、容器、数…

索引下推 INDEX CONDITION PUSHDOWN

索引下推 (INDEX CONDITION PUSHDOWN,简称ICP)是在 MySQL5.6 针对扫描索引下推二级索引的一项优化改进。 用来在范围查询时减少回表的次数。ICP适用于 MYISAM和INNODB.

如何通过抖捧轻松开启AI常态化自动直播间

在如今的互联网时代,短视频和直播已成为大多数企业与实体商家必备的经营技能,不只是全国头部的品牌,他们纷纷加码直播,更有一些已经开启了直播矩阵的体系,包括中小型的商家,他们也在考虑一件事情&#xff0…

ES入门八:Mapping的详细讲解

什么是Mapping?**Mapping定义了索引中的文档有哪些字段及其类型、这些字段是如何存储和索引的。**每个文档都是一个字段的集合,每个字段都有自己的数据类型,例如我们定义的books索引,其中有book_id、name等字段。所以Mapping的作用…

96道前端面试题,前端开发工作内容

HTML、CSS、JS三大部分都起什么作用? HTML内容层,它的作用是表示一个HTML标签在页面里是个什么角色;CSS样式层,它的作用是表示一块内容以什么样的样式(字体、大小、颜色、宽高等)显示;JS行为层…

OJ_子串计算

题干 c实现 #include <stdio.h> #include <string> #include <map>using namespace std;int main() {char strArr[100];while (scanf("%s", strArr) ! EOF) {string str strArr;map<string, int> subCount;for (int i 0; i < str.size…

android开发简历源码,今年Android面试必问的这些技术面

1、拓宽知识面 兴趣来了挡也挡不住&#xff01;从最初开始学习编程&#xff0c;从ASP到ASP.net,JS,Winform,Java,C,PHP,Python,都是自学&#xff01; 不过这里要说一下&#xff0c;如果没有一两门编程语言比较熟悉的情况下&#xff0c;最好还是不要自学&#xff1b;入门是最难…

Preferences为何优先选择Datastore,尽管它速度慢一些...

Preferences为何优先选择Datastore,尽管它速度慢一些… Preferences Datastore 在性能上虽然较慢,但相对于 Shared Preferences,仍应该优先选择它。以下是原因分析: 几年前,Android 引入了一个名为 Preferences Datastore 的新存储库,旨在取代 Shared Preferences 成为默…

Python学习 day07(JSON、format()函数)

JSON 各种编程语言存储数据的容器不尽相同&#xff0c;在Python中有字典dict这样的数据类型&#xff0c;而其他语言可能没有对应的字典&#xff0c;为了让不同的语言都能够相互通用的传递数据&#xff0c;JSON就是一种非常良好的中转数据格式&#xff0c;如下&#xff1a; JSON…

七大 排序算法(一篇文章梳理)

一、引言 排序算法是计算机科学中不可或缺的一部分&#xff0c;它们在数据处理、数据库管理、搜索引擎、数据分析等多个领域都有广泛的应用。排序算法的主要任务是将一组数据元素按照某种特定的顺序&#xff08;如升序或降序&#xff09;进行排列。本文将对一些常见的排序算法…

【OpenGL】(1) 专栏介绍:OpenGL 库 | 3D 计算机图形应用 | GPGPU 计算 | 3D 建模和 3D动画 | 渲染技术介绍

&#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; &#x1f4ad; 写在前面&#xff1a;本专栏主要内容是关于 3D 计算机图形技术的学习&#xff0c;重点是学习与此技术相关的 3D 实时渲染 (3D real-time rendering) 技术。我们会以…

Vue3:用vite创建Vue3项目

一、简介 vite是新一代前端构建工具&#xff0c;官网地址&#xff1a;https://vitejs.cn vite的优势如下&#xff1a; 轻量快速的热重载&#xff08;HMR&#xff09;&#xff0c;能实现极速的服务启动。对 TypeScript、JSX、CSS 等支持开箱即用。真正的按需编译&#xff0c;不…

迪丽热巴留洋千金回国了吗

迪丽热巴&#xff0c;这个名字在近年来的娱乐圈中可谓是如雷贯耳。作为中国当红女演员&#xff0c;她的美貌与才华吸引了无数粉丝的目光。而近日&#xff0c;有关迪丽热巴留洋千金回国的消息引起了广泛的关注与讨论。 一直以来&#xff0c;迪丽热巴的留学经历被视为她人生中的一…

Vue-02

开发者工具 安装插件&#xff0c;用于调试 Vue 应用。 https://chrome.zzzmh.cn/index 搜索 Vue &#xff0c;下载 Vue.js Devtools &#xff0c;此插件可以帮助更新信息&#xff0c;而不通过控制台更新&#xff0c;更方便调试。 注&#xff1a;安装插件后&#xff0c;记得在插…

SpringCloud-用nacos做服务注册与调用

步骤1&#xff1a;下载和安装Nacos 首先&#xff0c;你需要从Nacos的官方网站上下载并安装Nacos Server。根据你的操作系统选择合适的版本&#xff0c;并按照官方文档中的说明进行安装和配置。 步骤2&#xff1a;创建Spring Boot项目 在你喜欢的IDE中创建一个新的Spring Boot项…