当前位置:首页 > 科技  > 软件

深入解析C++中Sizeof和Strlen的奥秘:区别、应用与技巧全揭秘!

来源: 责编: 时间:2024-04-09 09:03:07 240观看
导读sizeof 和 strlen 是 C++ 中用于处理字符串的两个不同的操作符,它们的作用和使用场景有很大的区别。sizeof操作符:区别:sizeof 是一个运算符,不是一个函数,用于获取一个类型或变量的字节大小。对于数组,sizeof 返回整个数组

Gbj28资讯网——每日最新资讯28at.com

sizeof 和 strlen 是 C++ 中用于处理字符串的两个不同的操作符,它们的作用和使用场景有很大的区别。Gbj28资讯网——每日最新资讯28at.com

sizeof操作符:

区别:

  • sizeof 是一个运算符,不是一个函数,用于获取一个类型或变量的字节大小。
  • 对于数组,sizeof 返回整个数组的字节大小。
  • 对于指针,sizeof 返回指针本身的字节大小,而不是指针指向的内存块的大小。

应用和示例:

#include <iostream>int main() {    int integerVar;    double doubleVar;    char charArray[10];    char* charPointer;    std::cout << "Size of int: " << sizeof(integerVar) << " bytes" << std::endl;    std::cout << "Size of double: " << sizeof(doubleVar) << " bytes" << std::endl;    std::cout << "Size of char array: " << sizeof(charArray) << " bytes" << std::endl;    std::cout << "Size of char pointer: " << sizeof(charPointer) << " bytes" << std::endl;    return 0;}

上述代码中,sizeof 被用于获取不同类型和变量的字节大小,输出结果将显示它们在内存中占用的空间大小。Gbj28资讯网——每日最新资讯28at.com

strlen函数:

区别:

  • strlen 是一个函数,用于计算字符串的长度,即字符串中的字符数,不包括终止符 /0
  • 对于字符数组,strlen 返回数组中第一个字符到 /0 终止符的字符数。
  • 对于指针,strlen 返回指针指向的字符串的长度,同样不包括终止符 /0

应用和示例:

#include <iostream>#include <cstring>int main() {    const char* str = "Hello, World!";    std::cout << "Length of /"" << str << "/": " << strlen(str) << " characters" << std::endl;    char charArray[] = "C++ is fun!";    std::cout << "Length of /"" << charArray << "/": " << strlen(charArray) << " characters" << std::endl;    return 0;}

上述代码中,strlen 用于获取字符串的长度,输出结果将显示每个字符串中的字符数。Gbj28资讯网——每日最新资讯28at.com

注意事项:

  • sizeof 和数组: sizeof 返回整个数组的字节大小,而不是数组中的元素个数。如果需要获取数组中的元素个数,可以使用 sizeof(array) / sizeof(array[0]) 的方式。
  • strlen 和字符串终止符: strlen 计算字符串的长度时,不包括字符串终止符 /0。因此,实际存储的字符数是 strlen 返回的值加上终止符。
  • 指针的 sizeof: 对指针使用 sizeof 会返回指针本身的字节大小,而不是指向的数据的大小。要获取指针指向的数据大小,需要使用其他方式,如通过解引用指针后再使用 sizeof

sizeof 主要用于获取数据类型或变量的字节大小,而 strlen 用于获取字符串的长度。在使用这两者时,需要注意其返回值的含义和用途,以避免出现错误。Gbj28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-82177-0.html深入解析C++中Sizeof和Strlen的奥秘:区别、应用与技巧全揭秘!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 追觅科技 x 抖音商城开新日火力全开,助力品牌营销解锁新增量

下一篇: Python数据分析必备:Pandas中Rolling方法的完全指南

标签:
  • 热门焦点
  • 石头智能洗地机A10 Plus体验:双向自清洁治好了我的懒癌

    一、前言和介绍专为家庭请假懒人而生的石头科技在近日又带来了自己的全新旗舰新品,石头智能洗地机A10 Plus。从这个产品名上就不难看出,这次石头推出的并不是常见的扫地机器
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之&ldquo;想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!&rdquo;曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的&ldquo;新电商三兄弟&rdquo;成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • iQOO Neo8系列或定档5月23日:首发天玑9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
  • OPPO K11搭载高性能石墨散热系统:旗舰同款 性能凉爽释放

    日前OPPO官方宣布,将于7月25日14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼
  • Counterpoint :OPPO双旗舰战略全面落地 高端产品销量增长22%

    2023年6月30日,全球行业分析机构Counterpoint Research发布的《中国智能手机高端市场白皮书》显示,中国智能手机品牌正在寻求高质量发展,中国高端智能
Top