sizeof()和strlen

基于STM32与FPGA Cyclone IV的FSMC高速数据通信实战解析 本文详细解析了基于STM32的FSMC接口与FPGA Cyclone IV实现高速并行数据通信的实战方案。通过将FPGA模拟为SRAM设备,构建了MCU与FPGA之间的高速数据通道,并深入探讨了硬件连接、STM32软件配置、FPGA逻辑设计及性能优化等关键步骤,为图像处理、高速采集等需要大数据量交换的嵌入式应用提供了稳定高效的通信解决方案。 阅读详情

一、什么是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)

柔性OLED屏幕绿线故障的激光修复技术解析 OLED显示技术作为新一代显示方案,其主动矩阵驱动原理通过TFT背板控制每个像素的发光。在柔性屏幕应用中,微米级数据线路的物理损伤会导致显示异常,表现为贯穿屏幕的绿线故障。激光微焊技术凭借其微米级加工精度,成为修复这类精密电路损伤的理想方案。该技术通过纳秒级脉冲激光实现金属线路的精准重熔,在手机维修、显示面板制造等领域具有重要应用价值。特别是在折叠屏、曲面屏等柔性显示设备维修中,激光修复技术能有效解决因反复弯折导致的数据线断裂问题,配合光学定位系统和参数优化,修复成功率可达85%以上。 阅读详情

相关推荐

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1965

sizeof()和strlen的区别

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

Victor的BLOG 1万+

SAGA GIS英文版进行地形分析,计算常用的地形因子等

SAGA GIS中文版是一款专业的自动化地球科学分析系统软件。SAGA GIS最新版界面简洁,操作简便,用户使用时输入要分割的影像,选择要计算特征的影像或者波段,设置越大,得到的斑块越大;反之,则越小,点击Okay,得到分割影像图。SAGA GIS中文版主要通过选择适合你影像的格式,加载影像。 SAGA GIS全称是System for Automated Geoscientific Analyses,是一种用于编辑空间数据的地理信息系统(GIS)计算机程序,它是免费的开源软件,SAGA GIS旨在为科学家

qq_35794085的博客 5642

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万+

计算机视觉(相机标定;内参;外参;畸变系数)

目录 一、预备知识 1、坐标系变换过程(相机成像过程) (1)相机坐标系转换为图像坐标系(透视投影变换遵循的是针孔成像原理) (2)齐次坐标的引入原因:(为什么引入齐次坐标???) 2、内参与外参矩阵的构成 3、畸变参数 二、相机标定 1、张正友标定法(光学标定)及其求解思路 2、求解内参矩阵与外参矩阵的思路: (1)计算内参与外参矩阵的乘积M (2)求解内参矩阵A (3)求解外参矩阵(R1 R2 T) 三、参数优化 1、L-M算法 2、相机标定步骤 四、相关代码及其实验结.

QYJ_WORKHARDING的博客 6万+

4D毫米波雷达

详解4D成像毫米波雷达

sangba2019的博客 2393

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

企业信息化系统的组成模块-核心业务系统

通过标准化的数据流形成完整的业务闭环,CRM生成的销售订单驱动ERP的生产和采购,ERP将生产计划传递给MES执行,MES报工数据返回ERP进行成本核算,ERP再将交付信息同步给CRM供客户查询。生产管理确保高效交付,缩短订单周期。某贸易公司实施ERP供应链模块后,库存周转率从每年4次提升到8次,库存资金占用从2000万降到1200万,释放800万现金流,同时缺货率从15%降到5%。│ │库存 │ │ MRP │ │ ERP │ │ 云ERP/ │ │。

weiyvyy的博客 694

C strlen() 和sizeof()

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

Bigbosss的博客 463

【RT-DETR改进涨点】ResNet18、34、50、101等多个版本移植到ultralytics仓库(RT-DETR官方一比一移植)

本文是本专栏的第一篇改进,我将RT-DETR官方版本中的ResNet18、ResNet34、ResNet50、ResNet101移植到ultralytics仓库,网上很多改进机制是将基础版本的也就是2015年发布的ResNet移植到ultralytics仓库中,但是其实RT-DETR实验的ResNet和其是有很大区别的在其中有很多细节上的不同(文章中我也会列出举例)

Snu77的博客 7221

AWS SQS跨账户访问失败排查指南

在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接收消息”的问题。通过本文的逐步排查指南,您不仅可以解决当前问题,还能深入理解AWS跨账户访问的权限模型。接收方账户的用户或角色必须同时附加IAM策略,显式授权操作目标队列。尽管策略看似允许接收方操作,实际测试中却返回空消息或。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 458

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

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

H48530的博客 1524

【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(二) - 网络规划

2. 全三层架构设计思路 采用全三层网络架构设计的出发点是: 使用尽量少的交换机高级功能,可以尽可能减少由于功能bug故障造成的问题; 使用尽量少的网络协议,以兼容不通厂商的网络设备 实现简单,易于维护,绝对可靠的路由协议; 通过控制路由来调度流量,尽量减少设备或协议的故障域; 牺牲高级功能带来的便捷,得到更高的可用性和性能; 由上述原则,本文的设计选择只使用静态路由和BGP...

因吹斯汀 1万+

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

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

Shine0115的博客 1299

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

sizeof()和strlen()

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

Youngtsi的博客 321

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

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

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

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

apple_51255671的博客 1710

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

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

小比特大梦想 525

sizeof()和strlen()的区别

" 字符串的长度时,sizeof() 包括了 '\0‘ 所以计算出14,而strlen() 不会计算字符串末尾的‘\0’,所以输出结果是13;sizeof(a),等同于计算sizeof(char *) ,得出结果表明指针类型变量,在系统上占用多少字节(应随不同操作系统而不同)。sizeof(int *)亦如此。sizeof(char), char类型变量占用一个字节。sizeof(int), int类型变量占用4个字节。strlen() 是函数。sizeof() 是宏。

audio usb 308

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

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

Aseed40424991的博客 504

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

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

Terminal_ve的博客 6万+

C 语言关于sizeof() 和 strlen()区别

需要注意的是,strlen() 函数只能用于计算以空字符 '\0' 结尾的字符串的长度,如果字符串中没有空字符,则 strlen() 函数的行为是未定义的。sizeof() 和 strlen() 在 C 语言中两个非常常用,它们都与计算内存大小有关,但是它们的作用是不同的。其中 string 是一个以空字符 '\0' 结尾的字符串,但是计算字符串的长度,不包含末尾的 '\0'。strlen() 函数用于计算一个字符串的长度,即它所包含的字符个数(不包括字符串结尾的空字符 '\0')。

abclyq的博客 522

sizeof()与strlen()的区别

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

兰亭风雨的专栏 3028
上一篇: C语言:函数指针数组
下一篇: 回调函数和qsort函数的使用
Jett_Lin
博客等级 码龄5年 305粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值