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

strlen和sizeof,const char *、char * const 和char []区别

strlen和sizeof

  1. strlen是函数,返回字符串的长度(不计’\0’),而sizeof是运算符,返回变量或类型的大小(字节数)。

  2. strlen在运行时计算,遍历字符直到’\0’,而sizeof在编译时确定。

  3. 对于字符数组,sizeof包括所有元素,包括’\0’(如果有的话),而strlen不包括。

  4. 当用于指针时,sizeof返回指针的大小,而strlen仍然计算指向的字符串长度。

  5. 如果没有正确的’\0’终止,strlen可能出错,而sizeof不受影响,只要数组定义正确。
    在这里插入图片描述

const char *、char * const 和char []

1指向常量的指针

const char * ptr中的const修饰的是char,ptr指向的是一个常量字符,不能通过ptr来修改所指向的内容,但ptr本身可以指向其他地址。

const char *ptr = "Hello";ptr = "World"; // 允许,改变指针的指向// ptr[0] = 'h'; // 不允许,编译错误,因为指向的内容是常量

2常量指针

char * const ptr中的const修饰指针ptr,表示ptr本身是一个常量,不能指向其他地址,但可以通过ptr修改所指向的内容。

char str[] = "Hello";char* const ptr = str;ptr[0] = 'h'; // 允许,修改指向的内容// ptr = "World"; // 不允许,编译错误,指针本身是常量

3指向常量字符的常量指针

const char* const ptr = "Hello";

指针不可重新指向其他地址。
指向的内容也不可修改。
在这里插入图片描述

4char buf[1024]

数组(固定大小的字符缓冲区)
在这里插入图片描述

http://www.dtcms.com/a/207153.html

相关文章:

  • Web安全与漏洞挖掘
  • 常见高危端口解析:网络安全中的“危险入口”
  • 网络安全-等级保护(等保) 3-1 GB/T 28448-2019 《信息安全技术 网络安全等级保护测评要求》-2019-05-10发布【现行】
  • 01-jenkins学习之旅-window-下载-安装
  • OceanBase数据库全面指南(基础入门篇)
  • Django的请求和响应+template模板
  • 软件设计师“设计原则”真题考点分析——求三连
  • 重排序模型计算两个文本的分数
  • VS Code中Maven未能正确读取`settings.xml`中配置的新路径
  • 超声仿真乳腺体模的主要声学参数
  • docker容器暴露端口的作用
  • Linux中 I/O 多路复用机制的边缘触发与水平触发
  • 基于ITcpServer/IHttpServer框架的HTTP服务器
  • 如何重新设置网络ip地址?全面解析多种方法
  • Python 数据分析基础
  • leetcode hot100刷题日记——9.矩阵置零
  • 【小乌龙问题】stm32供电,用过的ch340缺无法被识别
  • [安装并使用Milvus_CLI]
  • 开疆智能Profinet转RS485网关连接富士电机配置案例
  • 对Web界面进行简单自动化测试Selenium
  • 基于多目标优化的样本调度适应度函数设计
  • 力扣小题, 力扣113.路径总和II力扣.111二叉树的最小深度 力扣.221最大正方形力扣5.最长回文子串更加优秀的算法:中心扩展算法
  • 获取印度股票市场API
  • Java使用CollectionUtils集合工具类
  • Unity Shader入门(更新中)
  • Lucide:一款精美的开源矢量图标库,前端图标新选择
  • RS485转PROFINET:让废水处理从“人工监控”到“智能管控”​​
  • PyQt学习系列02-模型-视图架构与数据管理
  • DOM API-JS通过文档对象树操作Doc和CSS
  • 其他有关Oracle BUFFER CACHE的优化思路