当前位置: 首页 > article >正文

【C++】sizeof()、strlen()、length()\以及size()用法区别

四种函数对比

  • sizeof()
  • strlen()
  • strlen(char*)
  • size()

sizeof()

参数:可以是数组指针类型对象
功能:获得能够保证所能容纳的最大对象的字节数大小(理解为整体的内存空间的大小计算)

strlen()

参数字符类型的指针(char*)
功能:返回字符串的长度,代表该字符串的第一个地址开始遍历,遇到结尾字符返回的长度大小(所存储数据的大小)

strlen(char*)

功能:返回的是字符串的实际长度

size()

功能:可以获得字符串的长度

strlen(str)和str.length()和str.size()都可以求字符串长度
其中str.length()和str.size()是用于求string类对象的成员函数
strlen(str)是用于求字符数组的长度,其参数是char*。

1)char* ss = “0123456789”;
计算字符指针的大小sizeof(ss)为4,ss是指向字符串常量的字符指针,sizeof 获得的是指针所占的空间,则为4
计算字符指针首元素类型大小sizeof(*ss)为1,*ss是第一个char字符,则为1

2)char ss[] = “0123456789”;
计算字符数组的分配内存的空间大小sizeof(ss)为11,ss是数组,计算到’\0’位置,因此是(10+1)
sizeof(*ss)为1,*ss是第一个字符

3)char ss[100] = “0123456789”;
sizeof(ss)为100,ss表示在内存中预分配的大小,100*1
计算字符数组(字符指针)其存储内容所占空间的大小strlen(ss)为10,它的内部实现用一个循环计算字符串的长度,直到’\0’为止。


http://www.kler.cn/a/156301.html

相关文章:

  • 微信小程序中使用离线版阿里云矢量图标
  • 大数据新视界 -- 大数据大厂之 Impala 存储格式转换:从原理到实践,开启大数据性能优化星际之旅(下)(20/30)
  • git下载慢下载不了?Git国内国外下载地址镜像,git安装视频教程
  • LeetCode【0035】搜索插入位置
  • 大模型时代,呼叫中心部门如何自建一套大模型在线客服?
  • 【初阶数据结构与算法】链表刷题之移除链表元素、反转链表、找中间节点、合并有序链表、链表的回文结构
  • 【每日一题】1038. 从二叉搜索树到更大和树-2023.12.4
  • python-GC机制、装饰器、生成器、迭代器、三元表达式、列表生成式、生成器表达式、函数递归、面向对象、
  • 【数据结构】八大排序 (三)
  • 如何精准操作无人机自动停机坪?
  • (c语言进阶)作业讲解
  • Docker pull 命令
  • 网件R8500 trojan
  • 技术前沿丨Teranode如何实现无限扩容
  • 36、红外遥控(外部中断)
  • 数据库事务的隔离级别
  • PyQt实战 创建一个PyQt5项目
  • 【算法】滑动窗口题单——5.多指针滑动窗口⭐
  • LabVIEW通过编程将图形类控件的X轴显示为时间戳
  • easyrecovery2024绿色版中文语言电脑数据恢复工具
  • 网络层之SDN基本概念、路由算法和路由协议
  • java的弱引用、软引用和虚引用
  • Ubuntu Server 20.04.6安装Anaconda3
  • javascript中的过滤操作
  • 11月推荐阅读的12篇大语言模型相关论文
  • 无需服务器,无需魔法,拥有一个微信机器人就是这么简单