strlen 与sizeof()的区别

简介: strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 

  char aa[10];cout<<strlen(aa)<<endl; //结果是不定的 

  char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0 

  char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3 

而sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。 

  sizeof(aa) 返回10 

  int a[10]; sizeof(a) 返回40 

1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。 

2.sizeof是操作符(关键字),strlen是函数。 

3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。 

  sizeof还可以用函数做参数,比如: 

  short f(); 

  printf("%d\n", sizeof(f())); 

  输出的结果是sizeof(short),即2。 

4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。 

5.大部分编译程序 在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因 

  char str[20]="0123456789"; 

  int a=strlen(str); //a=10; 

  int b=sizeof(str); //而b=20; 

6.strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。  

7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。 

8.当适用了于一个结构类型时或变量, sizeof 返回实际的大小, 

  当适用一静态地空间数组, sizeof 归还全部数组的尺寸。 

  sizeof 操作符不能返回动态地被分派了的数组或外部的数组的尺

相关文章
|
10月前
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
3005 1
|
9月前
|
分布式计算 DataWorks 搜索推荐
聊聊DataWorks这个大数据开发治理平台
聊聊DataWorks这个大数据开发治理平台
269 2
|
人工智能 自动驾驶 算法
人工智能的伦理困境与未来展望
【8月更文挑战第9天】随着人工智能技术的快速发展,它已经深入到我们生活的方方面面。然而,随之而来的伦理问题也日益凸显。本文将探讨人工智能带来的伦理挑战,并对其未来发展进行展望。
|
10月前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
276 1
|
11月前
|
监控 数据可视化 前端开发
利用低代码平台加速软件开发:现状与未来
【10月更文挑战第18天】低代码平台通过可视化界面和预构建模块,使非专业开发者也能快速构建应用程序,提高开发效率并扩大参与群体。本文探讨了低代码平台的现状、优势、挑战及未来影响,包括提升开发速度、降低技术门槛、减少维护成本和促进业务与IT协作等方面。同时,文章也讨论了定制化限制、性能问题和依赖性风险等挑战,并提供了实施低代码平台的最佳实践建议。
|
前端开发 Java API
淘系接口推荐:淘宝图片搜索商品数据接口,轻松获取相似商品
淘系接口推荐:淘宝图片搜索商品数据接口,轻松获取相似商品
1055 6
|
安全 Java 编译器
switch语句,到底隐藏了多少坑?
在Java编程中,switch语句以简洁高效著称,但也暗藏陷阱。遗忘`break`会导致意外的“贯穿”执行,须在每个case后添加`break`以终止流程。switch表达式的类型有限制,如float和double不被接受,需转换为整数类型或采用其他策略。遗漏`default`子句可能造成逻辑漏洞,应始终考虑不匹配情况以增强代码健壮性。正确运用这些技巧,能让代码更稳健优雅。
257 2
|
存储 大数据 云计算
《中国算力服务研究报告(2023年)》发布在即
全景梳理全球及我国算力服务产业发展态势
487 0
《中国算力服务研究报告(2023年)》发布在即
|
数据采集 数据可视化 数据挖掘
数据可视化在图书馆中的应用及发展趋势
为说明数据可视化在图书馆的应用实践,以CNKI期刊数据库收录的期刊论文为研究对象,运用Excel 2016数据统计软件和VOSviewer1.6 . 19等可视化分析软件。将数据可视化在图书馆应用的研究成果分为4个阶段对研究热点和趋势进行可视化分析。图书馆行业数据可视化应用的研究重点逐渐从数据分析转向数据服务。随着社交媒体的广泛使用,图书馆比以往更加重视用户数据素养的培养、知识服务的数字化、信息一目了然的可视化、数字人文的研究等。
201 0
|
网络协议
服务器端口被占用怎么解决
服务器端口被占用怎么解决

热门文章

最新文章