当前位置: 首页 > 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]

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

相关文章:

  • 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
  • 廉江网站制作/金华网站推广
  • 内蒙古自治区精神文明建设网站/cms自助建站系统
  • 做网站在哪买域名/地推项目对接平台
  • 海拉尔网站建设/品牌推广工作内容
  • 宁波市住房和城乡建设厅网站/云优客seo排名公司
  • 个体营业执照年审怎么年审/什么是搜索引擎优化