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

sizeof()和strlen

一、什么是sizeof()

sizeof()是一个在C和C++中广泛使用的操作符,用于计算数据类型或变量所占内存的字节数。它返回一个size_t类型的值,表示其操作数所占的字节数。

在使用时,sizeof()可以接收一个数据类型作为参数,也可以接收一个具体的变量或表达式作为参数。对于数据类型,sizeof()返回该数据类型所占的字节数;对于变量或表达式,sizeof()返回其类型所占的字节数。

以下是sizeof()的使用示例:

sizeof(int); // 返回 int 类型所占据的字节数
sizeof(double); // 返回 double 类型所占据的字节数
sizeof(char); // 返回 char 类型所占据的字节数
sizeof(float); // 返回 float 类型所占据的字节数int arr[10];
sizeof(arr); // 返回整型数组 arr 所占据的总字节数,通常是数组长度乘以每个元素的字节数sizeof(char*); // 返回指针变量所占据的字节数,通常是编译器架构下的指针大小

在计算数组的大小时,sizeof()操作符会返回整个数组占据的总字节数,因此它经常用于确定数组在内存中的存储空间。同时,sizeof()在动态内存分配中也很有用,因为它可以帮助确定所需内存块的大小。

需要注意的是,sizeof()是一个编译时求值的操作符,在程序运行时并不会执行计算,而是在编译阶段就确定了结果。

二、什么是strlen 

strlen是一个用于计算字符串长度的C标准库函数,它返回一个size_t类型的值,表示输入字符串中非空字符的数量,不包括字符串结尾的空字符'\0'。

在使用时,strlen函数接收一个以空字符为结尾的字符串作为参数,并计算这个字符串中字符的数量,知道遇到字符串结尾的空字符为止。

以下是strlen的使用示例:

#include<string.h>//使用strlen库函数需要用到的头文件
int main()
{char str[] = "Hello World!";size_t strlength = strlen(str);printf("The length of the string is:%zu\n", strlength);//%zu是C语言中用来格式化size_t类型变量的格式符号return 0;
}

需要注意的是, strlen函数只能用于以空字符结尾的字符串,如果输入的不是一个以空字符为结尾的字符串,其行为是未定义的,可能会导致意外的结果。

 三、sizeof()和strlen的区别

sizeof()是操作符,计算操作数所占内存大小,单位是字节,关注的是数据的类型。

strlen是库函数,用来计算字符串的长度,统计的是空字符前字符的个数,如果没有空字符,可能会越界访问。

更多C语言相关练习请访问:test_c: C语言练习,包括常见语法练习以及小项目练习。 (gitee.com)

相关文章:

sizeof()和strlen

一、什么是sizeof() sizeof()是一个在C和C中广泛使用的操作符&#xff0c;用于计算数据类型或变量所占内存的字节数。它返回一个size_t类型的值&#xff0c;表示其操作数所占的字节数。 在使用时&#xff0c;sizeof()可以接收一个数据类型作为参数&#xff0c;也可以接收一个…...

Python学习笔记13 - 元组

什么是元组 元组的创建方式 为什么要将元组设计为不可变序列&#xff1f; 元组的遍历...

[leetcode]remove-duplicates-from-sorted-list-ii

. - 力扣&#xff08;LeetCode&#xff09; 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;[1,2,5]示例 2&…...

共享内存和Pytorch中的Dataloader结合

dataloader中通常使用num_workers来指定多线程来进行数据的读取。可以使用共享内存进行加速。 代码地址&#xff1a;https://github.com/POSTECH-CVLab/point-transformer/blob/master/util/s3dis.py 文章目录 1. 共享内存和dataloader结合1.1 在init中把所有的data存储到共享内…...

分享 WebStorm 2024 激活的方案,支持JetBrains全家桶

大家好&#xff0c;欢迎来到金榜探云手&#xff01; WebStorm公司简介 JetBrains 是一家专注于开发工具的软件公司&#xff0c;总部位于捷克。他们以提供强大的集成开发环境&#xff08;IDE&#xff09;而闻名&#xff0c;如 IntelliJ IDEA、PyCharm、和 WebStorm等。这些工具…...

Android OOM问题定位、内存优化

一、OOM out of memory&#xff1a;简称OOM&#xff0c;内存溢出&#xff0c;申请的内存大于剩余的内存而抛出的异常。 对于Android平台&#xff0c;广义的OOM主要是以下几种类型 JavaNativeThread 线程数的上限默认为32768&#xff0c;部分华为设备的限制是500通常1000左右…...

棋盘(c++题解)

题目描述 有一个m m的棋盘&#xff0c;棋盘上每一个格子可能是红色、黄色或没有任何颜色的。你现在要从棋盘的最左上角走到棋盘的最右下角。 任何一个时刻&#xff0c;你所站在的位置必须是有颜色的&#xff08;不能是无色的&#xff09; &#xff0c;你只能向上、下、 左、右…...

滑动窗口例题

一、209:长度最小的子数组 209:长度最小的子数组 思路&#xff1a;1、暴力解法&#xff1a;两层for循环遍历&#xff0c;当sum > target时计算子数组长度并与result比较&#xff0c;取最小的更新result。提交但是超出了时间限制。 class Solution {public int minSubArray…...

智过网:注册安全工程师注册有效期与周期解析

在职业领域&#xff0c;各种专业资格认证不仅是对从业者专业能力的认可&#xff0c;也是保障行业安全、规范发展的重要手段。其中&#xff0c;注册安全工程师证书在安全生产领域具有举足轻重的地位。那么&#xff0c;注册安全工程师的注册有效期是多久呢&#xff1f;又是几年一…...

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师也是游戏热爱者。最近在steam发现rust腐蚀自建的服务器以及玩家还是非常多的&#xff0c;那么作为服务器供应商对这商机肯定是不会放过的哈哈哈&#xff01; 艾西这…...

蓝桥杯备赛:考前注意事项

考前注意事项 1、DevCpp添加c11支持 点击 工具 - 编译选项 中添加&#xff1a; -stdc112、万能头文件 #include <bits/stdc.h>万能头文件的缺陷&#xff1a;y1 变量 在<cmath>中用过了y1变量。 #include <bits/stdc.h> using namespace std;// 错误示例 …...

111111111111

111111111111...

uniapp 卡片勾选

前言 公司的app项目使用的uniapp&#xff0c;项目里有一个可勾选的卡片功能&#xff0c;效果图如下&#xff1a; 找了一圈没找到什么太好的组件&#xff0c;于是就自己简单写了一个&#xff0c;记录一下。避免以后还会用到 代码 <template><view class"card-…...

乐趣Python——文件与数据:挥别乱糟糟的桌面

各位朋友们&#xff0c;今天我们要开启一场非凡的冒险——进入文件操作的世界&#xff01;你知道吗&#xff0c;在你的电脑里&#xff0c;有一个叫做“文件系统”的迷宫&#xff0c;里面藏着各种各样的文件和文件夹&#xff0c;它们就像是迷宫中的宝藏。但有时候&#xff0c;这…...

docker nginx-lua发送post json 请求

环境准备 dockerfile from fabiocicerchia/nginx-lua:1.25.3-ubuntu22.04 run apt-get -qq update && apt-get -qq install luarocks run luarocks install lua-cjson run luarocks install lua-iconv run luarocks install lua-resty-http后台代理服务准备&#xff…...

阿里面试总结 一

写了这些还是不够完整&#xff0c;阿里 字节 卷进去加班&#xff01;奥利给 ThreadLocal 线程变量存放在当前线程变量中&#xff0c;线程上下文中&#xff0c;set将变量添加到threadLocals变量中 Thread类中定义了两个ThreadLocalMap类型变量threadLocals、inheritableThrea…...

多线程(49)定义无锁、阻塞、非阻塞和无等待算法

在并发编程中&#xff0c;理解不同的同步策略——无锁&#xff08;Lock-Free&#xff09;、阻塞&#xff08;Blocking&#xff09;、非阻塞&#xff08;Non-Blocking&#xff09;、无等待&#xff08;Wait-Free&#xff09;——对于设计高效、健壮的多线程应用至关重要。让我们…...

(一)ffmpeg 入门基础知识

一、ffmpeg FFmpeg是一套强大的开源音视频处理工具&#xff0c;能够录制、转换以及流化音视频内容。 FFmpeg是开源的&#xff0c;这意味着它的源代码是公开的&#xff0c;允许任何人使用、修改和分发。它提供了录制、转换以及流化音视频的完整解决方案&#xff0c;支持多种格…...

【软件测试】个人博客系统测试

个人博客系统测试 一、项目背景1.1 技术背景1.2 功能背景 二、 测试用例编写三、自动化测试3.1 什么是自动化测试3.2 通过使用selenium进行自动化测试的编写&#xff08;Java实现&#xff09;3.3 编写测试用例&#xff0c;执行自动化测试3.3.1 输入用户名:test,密码:123&#x…...

20240410解决OK3588-C的核心板刷机之后无法启动的问题

20240410解决OK3588-C的核心板刷机之后无法启动的问题 2024/4/10 19:38 1、编译OK3588的LINUX/Buildroot&#xff1f;forlinxubuntu: ~/3588/OK3588_Linux_fs$ sudo ./build.sh BoardConfig-linuxfs-ok3588.mk 2、进行全编译 forlinxubuntu: ~/3588/OK3588_Linux_fs$ sudo ./bu…...

多波束声呐接收机与信号处理算法【附程序】

✨ 长期致力于多通道声呐接收机、电路设计、FPGA、数字信号处理、波束形成研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;小型化96通道接收机硬件电路…...

AutoJs6架构深度解析:JavaScript自动化引擎在Android平台的实现原理

AutoJs6架构深度解析&#xff1a;JavaScript自动化引擎在Android平台的实现原理 【免费下载链接】AutoJs6 安卓平台 JavaScript 自动化工具 (Auto.js 二次开发项目) 项目地址: https://gitcode.com/gh_mirrors/au/AutoJs6 AutoJs6作为Android平台领先的JavaScript自动化…...

HS2-HF_Patch:让Honey Select 2体验全面升级的智能补丁

HS2-HF_Patch&#xff1a;让Honey Select 2体验全面升级的智能补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经因为语言障碍而无法完全享受Honey…...

从手机5G到智能声呐:LMS自适应波束形成算法在真实场景里是怎么用的?

从手机5G到智能声呐&#xff1a;LMS自适应波束形成算法的工程实践 当你在嘈杂的会议室里对着智能音箱说话时&#xff0c;它为何能精准捕捉你的声音而忽略背景噪音&#xff1f;当5G基站需要同时服务数百个移动设备时&#xff0c;又是如何避免信号相互干扰&#xff1f;这些看似毫…...

DownKyi哔哩下载姬:5步快速掌握B站视频下载完整教程

DownKyi哔哩下载姬&#xff1a;5步快速掌握B站视频下载完整教程 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xf…...

收藏!AI时代程序员是消失还是逆袭?小白程序员必看大模型逆袭指南

收藏&#xff01;AI时代程序员是消失还是逆袭&#xff1f;小白程序员必看大模型逆袭指南 文章探讨了AI对程序员行业的影响&#xff0c;指出AI抢走了程序员一半的饭碗&#xff0c;但也为另一半人打开了高阶职场的大门。初级岗位因AI工具普及而面临失业风险&#xff0c;但高级技术…...

工程师十年实战:从线缆地狱到桌面净土的理线系统指南

1. 从“线缆地狱”到“桌面净土”&#xff1a;一位工程师的十年理线实战录我的工作台&#xff0c;曾经是线缆的“百慕大三角”。USB线、耳机线、电源线、各种测试探头线……它们像藤蔓一样缠绕、垂落、堆积&#xff0c;最终在桌面上形成一个五彩斑斓、却令人绝望的“线缆地狱”…...

终极iOS设备降级指南:使用Legacy-iOS-Kit让旧设备重获新生 [特殊字符]

终极iOS设备降级指南&#xff1a;使用Legacy-iOS-Kit让旧设备重获新生 &#x1f680; 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Le…...

QMCDecode终极指南:3分钟解锁QQ音乐加密文件,让音乐自由播放

QMCDecode终极指南&#xff1a;3分钟解锁QQ音乐加密文件&#xff0c;让音乐自由播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录…...

别再手动点选了!用C#写个SolidWorks插件,一键智能识别并拉伸草图里的特定轮廓

用C#开发SolidWorks智能插件&#xff1a;一键识别并拉伸特定草图轮廓的工程实践 在机械设计领域&#xff0c;SolidWorks作为主流三维CAD软件&#xff0c;其草图绘制与特征创建是产品开发的基础环节。工程师们经常遇到这样的场景&#xff1a;复杂草图中包含多个相交轮廓&#xf…...