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

C++:字符数组与字符串指针变量的大小

#include<iostream>
#include<cstring>
int main(int argc, char const *argv[])
{// 字符数组char str[128] = "hello world";std::cout<<sizeof(str)<<std::endl;std::cout<<strlen(str)<<std::endl;// 字符串指针变量char *str2 = "hello world";std::cout<<sizeof(str2)<<std::endl;std::cout<<strlen(str2)<<std::endl;return 0;
}

结果:

128
11
8
11

在 C++ 中,str2 是一个指向常量字符串 “hello world” 的指针,它并不是字符串本身,而是一个指针,指向该字符串的首字符。sizeof(str2) 会返回指针的大小,而不是字符串的长度。

在大多数平台上,指针的大小通常是 4 字节(对于 32 位系统)或 8 字节(对于 64 位系统)。因此,sizeof(str2) 输出的结果取决于你的系统架构。

对于 64 位系统,sizeof(str2) 会输出 8。
对于 32 位系统,sizeof(str2) 会输出 4。
需要注意的是,sizeof 对于指针类型返回的是指针本身的大小,而不是指针所指向的内容的大小。如果你想获得字符串的长度(包括空字符 ‘\0’),可以使用 strlen 函数:

std::cout << strlen(str2) << std::endl;  // 输出 11,"hello world" 的长度

总结:如果你运行 sizeof(str2),在 64 位系统上输出 8,在 32 位系统上输出 4。

http://www.xdnf.cn/news/464365.html

相关文章:

  • 鸿蒙OSUniApp制作多选框与单选框组件#三方框架 #Uniapp
  • 协作赋能-1-制造业生产流程重构
  • Midjourney 最佳创作思路与实战技巧深度解析【附提示词与学习资料包下载】
  • 一些问题杂记
  • NY244NY249美光闪存颗粒NY252NY256
  • unity terrain 在生成草,树,石头等地形障碍的时候,无法触发碰撞导致人物穿过模型
  • 全链路压测实战指南:从理论到高可用架构的终极验证
  • Transformer的理解
  • Elasticsearch 分片机制高频面试题(含参考答案)
  • 【备忘踩坑】Android单元测试中读取测试assets的方法
  • 一套基于 Bootstrap 和 .NET Blazor 的开源企业级组件库
  • C#中Action的用法
  • Milvus Docker 部署教程
  • 【FFmpeg+SDL】使用FFmpeg捕获屏幕,SDL显示
  • 套路化编程:C# winform ListView 自定义排序
  • 5款AI驱动的MySQL数据库管理工具:提升运维效率的智能之选
  • 数智化招标采购系统如何实现分散评标?
  • Git/GitLab日常使用的命令指南来了!
  • Python——文件、异常、模块与包
  • 深入理解浏览器中的 window、document 和 window.parent
  • HarmonyOs开发之———UIAbility进阶
  • NVIDIA Omniverse 现已支持中文!
  • 问题处理——在ROS2(humble)+Gazebo+rqt下,无法显示仿真无人机的相机图像
  • 【LLIE专题】基于码本先验与生成式归一化流的低光照图像增强新方法
  • 【JS】vue3中组件命名问题
  • 世界模型+大模型+自动驾驶 论文小汇总
  • 测试--BUG(软件测试⽣命周期 bug的⽣命周期 与开发产⽣争执怎么办)
  • 深入解析CountDownLatch的设计原理与实现机制
  • VBA_NZ系列工具NZ10:VBA压缩与解压工具
  • spring boot Controller 和 RestController 的区别