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

sizeof 和 strlen 比较

sizeof 和 strlen 在 C 语言中都是用于获取某种“大小”的,但它们之间有着显著的区别。

sizeof

sizeof 是一个运算符,用于计算数据类型或对象在内存中的大小(以字节为单位)。它可以在编译时确定结果,因为它计算的是类型或对象在内存中的固定大小。

  • 用法sizeof(type) 或 sizeof(object)
  • 返回值size_t 类型的值,表示大小(以字节为单位)
  • 特点
    • 在编译时确定结果
    • 可以用于任何数据类型(包括数组、结构体等)
    • 对于数组,sizeof 返回整个数组的大小(包括所有元素)

strlen

strlen 是一个函数,用于计算字符串的长度(不包括终止的 null 字符)。它定义在 <string.h> 头文件中,并接受一个指向以 null 结尾的字符串的指针作为参数。

  • 用法strlen(const char *str)
  • 返回值size_t 类型的值,表示字符串的长度(不包括终止的 null 字符)
  • 特点
    • 在运行时确定结果
    • 只能用于以 null 结尾的字符串
    • 如果字符串没有以 null 结尾,strlen 可能会继续读取内存直到遇到随机的 null 字符或导致程序崩溃

示例

#include <stdio.h>#include <string.h>int main() {char str[] = "Hello, World!";// 使用 sizeofsize_t size = sizeof(str); // 返回整个数组的大小(包括终止的 null 字符)printf("Size of str: %zu bytes\n", size);// 使用 strlensize_t len = strlen(str); // 返回字符串的长度(不包括终止的 null 字符)printf("Length of str: %zu characters\n", len);return 0;}

输出:

Size of str: 14 bytes 
Length of str: 13 characters

注意,在这个例子中,sizeof(str) 返回的是整个数组 str 的大小(包括终止的 null 字符),而 strlen(str) 返回的是字符串 "Hello, World!" 的长度(不包括终止的 null 字符)。

相关文章:

sizeof 和 strlen 比较

sizeof 和 strlen 在 C 语言中都是用于获取某种“大小”的&#xff0c;但它们之间有着显著的区别。 sizeof sizeof 是一个运算符&#xff0c;用于计算数据类型或对象在内存中的大小&#xff08;以字节为单位&#xff09;。它可以在编译时确定结果&#xff0c;因为它计算的是类…...

音视频开发—FFmpeg 打开摄像头进行RTMP推流

实验平台&#xff1a;Ubuntu20.04 摄像头&#xff1a;普通USB摄像头&#xff0c;输出格式为YUV422 1.配置RTMP服务器推流平台 使用Nginx 配置1935端口即可&#xff0c;贴上教程地址 ubuntu20.04搭建Nginxrtmp服务器) 2.配置FFmpeg开发环境 过程较为简单&#xff0c;这里不…...

D触发器(D Flip-Flop)与D锁存器(D Latch)

1 基础概念 我们先来简单回顾一下D触发器&#xff08;D flip-flop&#xff09;和D锁存器&#xff08;D latch&#xff09;的概念&#xff0c;以及它们在数字电路中的作用。 1.1 D触发器&#xff08;D Flip-Flop&#xff09; D触发器是一种数字存储器件&#xff0c;它在时钟信号…...

JDK19特性

JDK19特性 一、JAVA19概述 JDK 19 2022 年 9 月 20 日正式发布以供生产使用,非长期支持版本。不过,JDK 19 中有一些比较重要的新特性值得关注。 JDK 19 只有 7 个新特性: JEP 405: Record Patterns(记录模式)[1] (预览)JEP 422: Linux/RISC-V Port[2]JEP 424: Foreign …...

sql语句中常用的函数有那些

1、字符串函数 CONCAT(string1, string2, ...): 连接两个或多个字符串。 UPPER(string): 将字符串转换为大写。 LOWER(string): 将字符串转换为小写。 TRIM(string): 去除字符串两端的空格。 LENGTH(string): 返回字符串的长度。 SUBSTRING(string, start, length): 从字符串中…...

odoo17 小变更3 Warning、 “attrs “和 “states “不再用

odoo17 小变更 1、Warning from odoo.exceptions import ValidationError,Warning ImportError: cannot import name Warning from odoo.exceptions (D:\od172406\odoo\exceptions.py) 2、自 17.0 版起&#xff0c;不再使用 "attrs "和 "states "属性。 …...

Unity3d 游戏暂停(timeScale=0)引起的deltaTime关联的系列问题解决

问题描述 游戏暂停的功能是通过设置timeScale0实现的&#xff0c;不过在暂停游戏的时候&#xff0c;需要对角色进行预览和设置&#xff0c;为了实现这个功能&#xff0c;是通过鼠标控制相机的操作&#xff0c;为了使相机的操作丝滑&#xff0c;获取鼠标操作系数乘以Time.delta…...

服务端代码编写中MySql大小写在Java中报错问题解决

报错信息&#xff1a; 原因&#xff1a;MySql和Java变量大小写产生的冲突。 经过查阅各个博客等&#xff0c;得出浅显结论&#xff08;不一定对&#xff09;&#xff1a;MySql大小写不敏感&#xff0c;Java大小写敏感&#xff0c;当Javabean转为MySql数据库表时&#xff0c;Ja…...

CRMEB 多店商品详情页装修说明

一、功能介绍 商家可调整商品详情各板块样式&#xff0c;可根据不同的需求开启或关闭单独的板块 二、操作流程 装修 > 商品详情 三、功能说明 1、商品信息 可控制商品详情页面商品信息的显示与隐藏 2、会员信息&#xff0c;排行榜 控制商品详情页面会员信息及排行榜的…...

Redis-使用 jedis 操作数据

文章目录 1、Jedis简介2、环境准备3、创建maven普通项目,导入如下依赖4、测试JAVA程序和Redis之间的通信 1、Jedis简介 "Jedis" 通常是作为 "Java Redis" 的缩写或简称来理解的。Java Embedded Data Structures Interface 表示 Java嵌入式数据结构接口 2、…...

简说PIP换源

概述 PIP&#xff08;Python Package Installer&#xff09;是 Python 的包管理工具&#xff0c;用于安装和管理 Python 包。默认情况下&#xff0c;PIP 从 Python 官方的包仓库&#xff08;即 PyPI&#xff09;下载和安装包。然而&#xff0c;由于网络原因&#xff0c;访问官…...

django学习入门系列之第三点《CSS基础样式介绍2》

文章目录 文字对齐方式外边距内边距往期回顾 文字对齐方式 水平对齐方式 text-align: center;垂直对齐方式 /* 注意&#xff0c;这个只能是一行来居中 */ line-height:/*长度*/ ;样例 <!DOCTYPE html> <html lang"en"> <head><meta charset…...

分布式光纤测温DTS在工程现场中稳定性与可靠性如何?

20年前&#xff0c;分布式光纤测温(Distributed Temperature Sensing&#xff0c;DTS)技术的发展尚不成熟&#xff0c;设备成本高昂&#xff0c;其稳定性与可靠性也存在一定问题。然而&#xff0c;经过二十多年的不断发展与创新&#xff0c;DTS技术在工程现场应用中取得了显著进…...

PHP多线程模块parallel的编译安装和多线程编程演示

从PHP7开始&#xff0c;多线程编原有的pthreads已经不在维护&#xff0c;而是使用parallel替代。 由于是新的模块&#xff0c;样例代码很少&#xff0c;这里总结一个简单的代码和详细的备注供大家参考。 编译和安装 parallel需要启用ZTS&#xff08;Zend Thread Safety&…...

记录grid布局属性

grid布局 分为容器和项目元素 容器属性 #container{display:grid;grid-template-columns:100px 100px 100px;/* 1fr 表示比例为占1份 */grid-template-columns:1fr 100px 1fr;/*100px为1列,自动填充,容器宽度不足则换行*/grid-template-columns:repeat(auto-fill,100px);/* …...

12.爬虫---PyMysql安装与使用

12.PyMysql安装与使用 1.安装 PyMySQL2.使用PyMySQL2.1创建数据表2.2连接数据库2.3增加数据2.4修改数据2.5查询数据2.6删除数据2.7关闭连接 3.总结 MySQL 安装可以看这篇文章MySql 安装与使用&#xff08;非常详细&#xff09; 1.安装 PyMySQL PyMySQL是Python中用于连接MySQL…...

VS2022遇到的两个问题

问题一&#xff1a;找不到定义的头文件 别的博主说是&#xff1a;在属性页里面进行改写&#xff0c;改成是&#xff0c;我试过之后并不行&#xff1b; 解决思路&#xff1a;但其实在右边视图里面找到你自己定义的头文件加到你运行文件中就行&#xff1b;因为程序就只有一个入口…...

【Android14 ShellTransitions】(六)SyncGroup完成

这一节的内容在WMCore中&#xff0c;回想我们的场景&#xff0c;是在Launcher启动某一个App&#xff0c;那么参与动画的就是该App对应Task&#xff08;OPEN&#xff09;&#xff0c;以及Launcher App对应的Task&#xff08;TO_BACK&#xff09;。在确定了动画的参与者后&#x…...

技术管理转型之战:决策之道-管理中的智慧与策略

文章目录 引言一、决策的重要性二、常见的决策方式1. 理性决策&#xff08;Rational Decision Making&#xff09;2. 有限理性&#xff08;Bounded Rationality&#xff09;3. 直觉决策&#xff08;Intuitive Decision Making&#xff09;4. 循证管理&#xff08;Evidence-Base…...

Shell脚本:条件语句(if、case)

目录 硬编码 硬编码的缺点 条件判断 $? 命令行语句 判断指定目录是否存在 判断指定文件是否存在 判断指定对象是否存在 表达式形式语句 判断对象是否存在 判断对象是否有权限 与、或、非 运算 与运算 或运算 非运算 比较大小 判断磁盘利用率实验步骤 字符串…...

从电影帧率到无线通信:用生活化案例理解TDMA时分多址原理

从电影帧率到交通信号灯&#xff1a;用生活化案例拆解TDMA时分多址技术 想象一下电影院里的24帧画面如何欺骗你的眼睛&#xff0c;或是十字路口的红绿灯如何指挥车流——这些日常现象背后隐藏的时序控制逻辑&#xff0c;正是无线通信中TDMA&#xff08;时分多址&#xff09;技术…...

设备维护日历可视化:用低代码平台打造智能保养提醒看板(含模板下载)

设备维护日历可视化&#xff1a;用低代码平台打造智能保养提醒看板 在制造业的日常运营中&#xff0c;设备维护保养常常被视为"必要但繁琐"的后台工作。传统的手工记录或Excel表格管理方式&#xff0c;不仅效率低下&#xff0c;还容易因人为疏忽导致关键保养任务被遗…...

避开这3个坑!STM32 CubeMX配置QSPI读写MX25L25645G实战复盘

STM32 CubeMX配置QSPI驱动MX25L25645G的三大实战陷阱与解决方案 在嵌入式系统开发中&#xff0c;外部Flash存储器的使用几乎成为标配&#xff0c;而MX25L25645G凭借其256Mb的大容量和QSPI接口的高速特性&#xff0c;成为许多STM32项目的首选。但当你真正开始用CubeMX配置QSPI接…...

全平台广告拦截神器:AdGuard扩展零门槛部署与优化指南

全平台广告拦截神器&#xff1a;AdGuard扩展零门槛部署与优化指南 【免费下载链接】AdguardBrowserExtension AdGuard browser extension 项目地址: https://gitcode.com/gh_mirrors/ad/AdguardBrowserExtension 广告拦截技术已成为现代浏览器的必备能力&#xff0c;AdG…...

3大核心功能揭秘:CELLxGENE如何让单细胞数据分析变得如此简单

3大核心功能揭秘&#xff1a;CELLxGENE如何让单细胞数据分析变得如此简单 【免费下载链接】cellxgene An interactive explorer for single-cell transcriptomics data 项目地址: https://gitcode.com/gh_mirrors/ce/cellxgene 在单细胞转录组学研究中&#xff0c;数据分…...

Qwen2.5-72B-Instruct-GPTQ-Int4实战案例:新能源电池BMS日志分析与故障模式推演

Qwen2.5-72B-Instruct-GPTQ-Int4实战案例&#xff1a;新能源电池BMS日志分析与故障模式推演 1. 项目背景与模型介绍 新能源电池管理系统(BMS)是电动汽车和储能系统的核心组件&#xff0c;每天产生大量运行日志数据。传统分析方法依赖人工经验&#xff0c;效率低下且难以发现潜…...

如何快速上手BepInEx:3个高效秘诀解锁Unity游戏插件开发

如何快速上手BepInEx&#xff1a;3个高效秘诀解锁Unity游戏插件开发 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 想象一下&#xff0c;你心爱的Unity游戏缺少某个功能&#xff…...

【系统分析师_知识点整理】 8.项目管理

核心考向&#xff1a;进度管理&#xff08;计算 选择最高频&#xff09;&#xff1a;关键路径、ES/EF/LS/LF、总浮动时间、自由浮动时间、PDM 四种依赖、进度偏差分析&#xff1b;范围管理&#xff1a;WBS、范围确认、范围控制、范围边界定义&#xff1b;成本管理&#xff1a;…...

ColorControl开源显示调校工具:从新手到专家的HDR优化之路

ColorControl开源显示调校工具&#xff1a;从新手到专家的HDR优化之路 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl 在数字显示技术快速发展的今天&#xff…...

earthengine-api 未来展望:路线图、新功能和社区发展趋势

earthengine-api 未来展望&#xff1a;路线图、新功能和社区发展趋势 【免费下载链接】earthengine-api Python and JavaScript bindings for calling the Earth Engine API. 项目地址: https://gitcode.com/gh_mirrors/ea/earthengine-api earthengine-api 作为连接地球…...