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

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

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

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

sizeof 和 strlen 是 C++ 中用于处理字符串的两个不同的操作符,它们的作用和使用场景有很大的区别。XTj28资讯网——每日最新资讯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 被用于获取不同类型和变量的字节大小,输出结果将显示它们在内存中占用的空间大小。XTj28资讯网——每日最新资讯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 用于获取字符串的长度,输出结果将显示每个字符串中的字符数。XTj28资讯网——每日最新资讯28at.com

注意事项:

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

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

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

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

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

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

标签:
  • 热门焦点
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事&ldquo;起猛了,我能看得懂日语了&rdquo;。&ldquo;为什么日本人说话我能听懂?&rdquo;&ldquo;中文不像中文,日语不像日语,但是我竟然看懂了&rdquo;&hellip;&hell
  • 携众多高端产品亮相ChinaJoy,小米带来一场科技与人文的视听盛宴

    7月28日,全球数字娱乐领域最具知名度与影响力的年度盛会中国国际数码互动娱乐展览会(简称ChinaJoy)在上海新国际博览中心盛大开幕。作为全球领先的科
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
Top