strlen()与sizeof

避开SAM3安装大坑:手把手教你用国内镜像和Modelscope权重快速跑通Demo 本文详细介绍了如何在国内环境下快速部署SAM3视觉大模型,包括使用国内镜像加速Python包安装、通过Modelscope获取权重文件以及解决CUDA 11.8等低版本适配问题。手把手教你避开常见安装陷阱,实现高效Demo运行。 阅读详情

c语言没有string类型,字符串的处理使用的是char数组
c会默认在字符串的尾部增加一个'\0',也叫空字符(用来标记字符串的结束),所以字符串真正在内存中占用的字节数会比字符串的字符数多1.

strlen()

我们使用strlen()方法可以获取字符串的长度,也就是包含多少个字符数
然而获取到的这个字符数并不包含尾部被自动追加的'\0'空字符

sizeof

sizeof 这并不是一个方法,而是一个关键字,用来获得类型的大小,或某个量的大小,这里只讨论获取具体量的大小
sizeof获取的是c或者程序员为这个具体量分配了多大的空间(字节数)
以字符串,数组char举例:
声明了一个20大小的字符串:

char name[20];
name = jack;

那么sizeof name获得的大小就是20,而不是jack的字符数4,也不是真是占用内存的字节数5
而strlen(name),方法获得的大小则是4,而不是5或者20

测试源码

#include <stdio.h>
#include <string.h>
#define TEST "i am jack"
int main(void)
{
    char name[20];
    printf("type your name:\n");
    scanf("%s",name);
    printf("name is :%s\n", name);
    printf("sizeof name is : %ld\n", sizeof name);
    printf("strlen name is : %ld\n", strlen(name));
    printf("\n");
    printf("sizeof TEST is : %ld\n", sizeof TEST);
    printf("strlen TEST is : %ld\n", strlen(TEST));
    return 0;
}

输出结果为:

type your name:
jack
name is :jack
sizeof name is : 20
strlen name is : 4

sizeof TEST is : 10
strlen TEST is : 9
21天教你学会PCIe专栏(17)--多功能设备 1.1 定义多功能PCIe设备:多功能PCIe设备是指在一个物理设备中集成了多种功能的设备。这些功能可以通过不同的PCIe功能(Function)来实现,每个功能可以独立配置和管理。1.2 优点资源利用率:通过集成多种功能,减少物理设备的数量,提高资源利用率。成本效益:减少硬件成本和功耗,提高系统的经济性。灵活性:用户可以根据需要启用或禁用不同的功能,提高系统的灵活性。可扩展性:通过增加新的功能,扩展设备的功能,提高系统的可扩展性。1.3 应用场景网络设备。 阅读详情

相关推荐

从零构建NVENC编码器:一个游戏开发者的实战手册

本文详细介绍了如何从零构建NVENC编码器,特别针对游戏开发者提供实战指南。内容涵盖NVENC基础概念、DirectX纹理捕获、异步编码优化及高级特性配置,帮助开发者高效集成硬件编码技术到游戏引擎中,实现高性能游戏录制和直播功能。重点解析了NVIDIA专用编码芯片的优势与API使用技巧。

weixin_29292431的博客 365

sizeof()和strlen的区别

首先得区别清楚: sizeof()是运算符,在头文件的类型为unsigned int,其运算值在编译时就计算好了,参数可以是指针、数组、类型、对象和函数等; strlen()是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化为指针了。该函数完成的功能是从代表该字符串的第一个地址开始遍历的,直到遇到结束符NULL。返回的长度大小不包括NULL。 ...

Victor的BLOG 1万+

使用Termux在Android设备上编译运行SpecCPU2006

SPEC2006搭配Termux,竟然还能这么玩?!

菜菜的菜园子 2960

C语言中的sizeof()和strlen()的区别

C语言中的sizeof()和strlen()的区别 sizeof()和strlen()经常会被初学者混淆,但其中有有很大区别: 1.sizeof()【操作数所占空间的字节数大小】是一种c中的基本运算符。 可以以类型、指针、数组和函数等作为参数。 头文件类型为unsigned int。 运算值在编译的时候就出结果,所以可以用来定义数组维数。 char a[5]="123"; int b=sizeof(a);//b=5 int c=strlen(a);//c=3 sizeof()是一种单目操作符,是用来计算你

zhaocx111222333的博客 5万+

告别调试烦恼:用Lattice Diamond手把手教你JTAG烧录FPGA(附SRAM/Flash模式详解)

本文详细介绍了使用Lattice Diamond软件进行JTAG烧录FPGA的全流程,包括SRAM临时调试和Flash固化的核心区别。从环境准备、硬件连接到文件准备、烧录模式选择,再到典型问题排查和高级技巧,手把手教你快速掌握FPGA烧录技术,提升开发效率。

weixin_42569329的博客 495

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 478

strlen()和sizeof()区别

sizeof(brr[0][0]) ->单元格类型所占字节数与一维数组arr[0]含义一致,单个元素的大小。有个误区是,会以为以‘\n’结尾就就不再往后读取了,但是\n并不会作为字符串的结束符,strlen()为下图所示,sizeof()还需要加上结束符'\0',即为9。sizeof(brr) ->数组总字节数,即行和列元素总个数*定义类型的大小。sizeof(arr[0]) ->第一个元素字节数,或者说是单个元素的大小。sizeof(brr[0]) ->第一行元素的总字节数。二维数组brr[][]

qq_53830608的博客 1901

在 SAP Fiori 里玩转 Manage Views:把过滤器与列表布局固化成你的默认工作台

本文介绍了SAP Fiori应用中"Manage Views"功能的核心价值和使用方法。该功能允许用户保存和复用个性化界面设置,包括筛选条件、列布局等,将重复操作简化为一次性配置。文章从技术实现、用户操作和治理建议三个维度展开: 功能本质:View存储的是界面状态而非业务模型,是提升个人生产力的工具 核心价值:固化高频操作,支持默认视图设置,实现"开箱即用"的工作状态 操作指南:详细说明了收藏、重命名、设为默认、自动应用等关键功能 治理建议:区分标准视图、个人视图和公

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 126

C strlen() 和sizeof()

strlen() 是一个函数,求字符串的长度,但是不包括结束符 ‘\0’; size_t strlen(char const *str); sizeof()是一个单目运算符,求的是字符串的大小,包括结束符’\0’; 其参数可以是指针,数组,类型,对象和函数。 下面总结一下,不同情况下strlen()和sizeof()的结果: int main() { char *str = “Hello”; co...

Bigbosss的博客 463

网工、运维利器:MobaXterm,一款全能的远程工具

你好,这里是网络技术联盟站,我是瑞哥。是一款由Mobatek开发的多功能远程计算机管理工具,集成了多种网络协议和工具,专为网络工程师和系统管理员设计。它提供了丰富的远程连接功能,包括SSH、RDP、VNC、X11转发等,支持文件传输和多标签界面,内置了文本编辑器和多种网络工具,是一款全能的远程管理软件。MobaXterm的开发起始于2008年,最初只是一个简单的X服务器,但随着用户需求的不断增加和软件的逐步完善,MobaXterm逐渐发展成了一款功能全面、界面友好的远程管理工具。

网络技术联盟站 5229

SAP资产模块(FI-AA)与总账(FI-GL)数据不一致是财务顾问和会计人员最常遇到的棘手问题之一

SAP资产模块(FI-AA)与总账(FI-GL)数据不一致问题主要源于四大原因:1)违规手工记账(最常见),直接通过总账录入资产科目凭证而未通过资产模块;2)折旧运行问题,包括执行失败、跨年度问题或配置冲突;3)主数据与配置错误,如科目确定或折旧键设置不当;4)业务流程遗漏,如单据未生成凭证或汇率差异。解决方案包括运行对账报表、检查凭证来源、补跑折旧及核对配置。关键预防措施是坚持"资产模块发起→自动生成凭证→总账审核"的标准流程。

金牌架构师 428

知识点——C语言中sizeof()和strlen()的区别

sizeof()和strlen() sizeof() 是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。 strlen() 是C语言C++的函数,是所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。在C/C++中使用strlen函数需要引头文件 #inlcude<string.h> 程序实例:

H48530的博客 1524

基于大模型最大化电力交易收益(策略与代码实践)

新一代电力交易系统正借助大型语言模型(LLM)实现智能化转型。面对可再生能源占比提升带来的市场波动性加剧,传统交易策略已难以应对。LLM通过多模态能力,能够实时处理海量异构数据,包括政策公告、设备检修信息、天气报告等非结构化数据,构建更精准的电力市场预测模型。智能交易系统主要包含三大核心模块:市场情报感知与理解器、融合LLM的短期电价预测模型和自适应交易策略生成器。这些模块协同工作,可在几分钟内完成事件分析、价格预测和策略生成,显著提升交易效率。系统还能实现跨市场套利和动态风险管理,但需注意数据质量、模型验

专注AI大模型,软件混淆,授权 1256

sizeof的一些知识 (以及与strlen()的对比)

- 一,sizeof() 的一些常见使用 char* s1="0123456789"; char s2[]="0123456789"; char s3[100]="0123456789"; int s4[100]; char q1[]="abc"; char q2[]="a\n"; char* q3="a\...

weixin_43853589的博客 307

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

《strlen()和sizeof()全网干货最细》

本文章可谓是全文最细的strlen和sizeof干货,希望大家不要放过

Shine0115的博客 1299

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

简述sizeof()与strlen()的区别

简述sizeof()与strlen()的区别 先贴代码 : 固定内存空间, 实际的占用内存空间, 一个汉字占两个字节 ,

Aseed40424991的博客 504

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

sizeof()和strlen()

strlen()相较于sizeof()并未把空字符"\0"计入“str1”的长度中。sizeof运算符给出的数更大,因为它把字符串末尾不可见的空字符也计算在内。上面我们创建了名为“ch”的字符串类型的变量,并把值“A”赋予“ch”。左边是内存名称实际并不占内存,右边是存储在这里的值。sizeof运算符是以字节为单位给出对象的大小。strlen()给出字符串中字符的长度。#CPrimer#随记。先看看字符是如何存储的。

Youngtsi的博客 321

sizeof()与strlen()的区别

sizeof()函数以字节为单位给出数据的大小,strlen()函数以字符为单位给出字符串 的长度。而一个字符只占用一个字节,那是不是这两个函数应用到同一个字符串时可以得到 相同的结果呢?事实并非如此。      例如,对于一个数组长度为40的char型数组,假设其中实际保存的字符个数为6,则用 sizeof读取出的长度为40,而用strlen()函数读出的长度为6(数组的第7个单元放置空

兰亭风雨的专栏 3028

C语言sizeof()和strlen()函数的区别

首先看一个程序#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char const *argv[]) { char* p=NULL; char array[10]="abcdefgfde"; printf("%d\n",sizeof(array)); printf("

clise_girl的博客 1043

strlen()和sizeof()的区别

关于strlen()和sizeof()的区别 strlen()函数是针对字符数组元素个数,在string类型中不存在该函数; sizeof()函数是针对内存空间的函数,计算的是对象所占内存空间的大小。 举例说明区别: #include<iostream> #include<cstring> using namespace std; int main(void) { char s[20] = "sidh foge "; int len = strlen(s); cout &

qq_42679337的博客 235

C中sizeof()和strlen()的区别

C中sizeof()和strlen()的区别 在学Linux服务器端编程的时候,总是被sizeof(buf)、sizeof(buf)-1、strlen(buf)、strlen(buf)+1搞晕,在这里总结一下。 因为strlen()是一个函数,参数只能是char*类型,而sizeof()是一个单目运算符,它的参数可以是数组、指针、类型、对象、函数等等,所以这里分两种情况分别说:第一种是字符串情况下,strlen()和sizeof()都可以用;第二种情况是其他类型下,只能用sizeof()。 1 字符串情况下

童年的纸飞机的博客 1735

sizeof()与strlen()

sizeof()可以计算所有类型,strlen()仅计算字符串。 sizeof计算对象所占内存字节数,strlen()计算字符个数,遇到'\0'截止。 char *a; char b[5]; sizeof(a) = 8 ; // 64位系统,8代表的是指针的大小,指针占8字节 sizeof(b) = 5 ; // 计算字符串数组的结果是真实的字符数组大小 //strlen(a) strlen(b) // 无固定值,因为strlen判断的唯一标准是'\0', //它会根据a...

LSY_HYH的博客 245

C++求字符串长度————sizeof()、size()、strlen()以及length()详解

sizeof()、size()、strlen()以及length()函数

Terminal_ve的博客 6万+

c语言中sizeof()和strlen()的区别

sizeof()是运算符,它以字节为单位给出指定类型的大小。一个字节通常是8位。strlen()是一个函数,它给出指定字符串中的字符长度。

apple_51255671的博客 1710

C语言中关于sizeof()和strlen()的面试/笔试题【干货满满】

------------------------------------------------------- 头脑风暴----------------------------------------------------------sizeof与strlen的区别,前者是计算内存空间长度的(占多少个字节),后者只能计算字符串的长度【strlen()传进去的是数组首元素的地址,函数从首地址开始统计个数,遇到'\0'截止】

小比特大梦想 525

strlen、sizeof与size()求字符串长度的区别

strlen、sizeof与size()求字符串长度的区别 cout&lt;&lt;strlen("123")&lt;&lt;endl; //返回 3 cout&lt;&lt;sizeof("123")&lt;&lt;endl; //返回 4 string s = "123"; cout&lt;&lt;s.size()&lt;&lt;endl

yanxu_165319的博客 2万+
上一篇: hybrid-sleep和sleep以及hibernate的区别
下一篇: c打印乘法口诀和三角
listenerri
博客等级 码龄12年 39粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值