C 语言中常用的函数,sizeof() 和 strlen()

2023-11-12

sizeof() 函数用于获取数据类型或变量所占用的内存字节数,不管这个变量是什么类型,只要是在编译时就能确定其类型的表达式或变量,都可以作为 sizeof() 的参数,例如:

int a = 10;
int arr[10];
printf("%d\n", sizeof(int));  // 输出 4
printf("%d\n", sizeof(a));    // 输出 4
printf("%d\n", sizeof(arr));  // 输出 40

strlen() 函数用于获取一个字符串的长度,即字符串中字符的个数,它只能用于处理以 NULL 结尾的字符串,例如:

char str[] = "hello world";
printf("%d\n", strlen(str));  // 输出 11

需要注意的是,strlen() 函数只计算字符串中的字符个数,不包括字符串末尾的 NULL 字符,因此上面的例子中输出的是 11,而不是 12。

综上所述,sizeof() 和 strlen() 的主要区别在于:

  • sizeof() 获取数据类型或变量所占用的内存字节数,而 strlen() 获取字符串中字符的个数。
  • sizeof() 可以用于任何数据类型或变量,而 strlen() 只能用于以 NULL 结尾的字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 语言中常用的函数,sizeof() 和 strlen() 的相关文章

随机推荐

  • 磁盘加新盘扩容

    注 如果有磁盘超过2T 如下调整 使用parted来对GPT磁盘操作 进入交互式模式 没有的话yum安装下 parted dev sdb 将MBR磁盘格式化为GPT parted mklabel gpt 到这就可以进行下面的了 先查看下新磁
  • QT UI不能索引控件

    原因 Qt程序使用的UI h文件并不是最新的UI文件 最新的ui h在bulid文件夹里面了 软件依旧使用旧的ui h文件 简单讲就是先要从 ui生成ui h然后再编译 所以界面未更新实际上是因为ui h这个文件没有更新导致的 解决办法 1
  • 论文阅读-(GLIP)Grounded Language-Image Pre-training (目标检测+定位)

    Paper Grounded Language Image Pre training Code https github com microsoft GLIP 简介 定位任务与图像检测任务非常类似 都是去图中找目标物体的位置 目标检测为给出
  • 好一场逗鹅冤:一瓶老干妈撬动BAT

    近日 号称 南山必胜客 的腾讯法务部将低调做酱料的老干妈送上了热搜 腾讯状告老干妈欠广告费 老干妈则称腾讯遭遇诈骗 双方各执一词 引得不明真相的吃瓜群众热闹围观 01 腾讯被骗 老干妈躺赚 6月29日 广东省深圳市南山区人民法院发布一则民事
  • QTcpSocket 发送数据心得

    遇到不会用的函数前 最好还是看看手册QAQ 今天居然吃了这个大亏 先交代一下背景 在做TCP客户端的发送数据功能 要和服务器程序进行TCP IP通信 且根据通信协议要发送数组或者结构体 并且数组的每一个位都是有效数据位 因此不能像大多数人一
  • 跳转小程序:wx-open-launch-weapp 注意事项,不显示按钮问题

    JSSDK参考文件 一 注意查看引入JS的版本 版本 版本 引用1 6 引用1 6 引用1 6 http res wx qq com open js jweixin 1 6 0 js 如果不引用1 6会出现什么情况 开放标签列表不显示 所以
  • 浅谈路由器工作原理

    路由器的作用是实现网络的三层通信 将二层网络互联形成一个三层网络 路由器工作内容 1 封装和解封装 网卡CU 数据帧 2 维护路由表 3 IP转发 也叫网络转发 三层转发 路由器接口特点 路由器接口和计算机网卡接口一样 都能封装和解封装数据
  • 【Python:Pycharm】mmSegmentation语义分割框架教程

    文章目录 一 MMSegmentation介绍 二 MMSegmentation基本框架 1 model设置 2 dataset设置 2 1 Dataset Class文件配置 2 2 Dataset Config文件配置 2 3 Tota
  • C语言实现贪吃蛇(详细版)

    一 需要掌握的知识 C语言基础语法 结构体 指针 链表
  • MyBatis 源码解析MyBatis如何解析配置 ?(六)

    XMLMapperBuilder parameterMapElement 代码比较长了 因为parameterMap 涉及到比较多的东西
  • 基于bandersnatch搭建pip本地源

    由于现在工作在单位局域网环境下 不能联接互联网 Python程序的开发和部署需要很多地三方的包 为了便于在局域网环境下学习和使用Python进行程序开发 特在有互联网的电脑上同步了一份Pip源 定期同步部署到局域网服务器上 查了不少资料 发
  • Qt事件过滤器原理EventFilter(installEventFilter函数)

    Qt事件过滤器原理 installEventFilter函数 本文为原创文章 转载请注明出处 或注明转载自 黄邦勇帅 原名 黄勇 本文出自本人原创著作 Qt5 10 GUI完全参考手册 网盘地址 https pan baidu com s
  • 【433 发射接收源码】

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 433小结记录 记录 一 433小功率无线射频代码模块 二 使用步骤 1 433发射 主循环阻塞发射 中断发射 2 433接收数据 中断接收 总结 记录 提示 这里可以添加本
  • 介绍一款非常好用的高效率截图工具----Snipaste(下载及安装)

    高效率截图工具 Snipaste 一 简单介绍 二 下载安装 snipaste工具下载地址如下 点击下载地址进入如下页面 三 使用介绍 最后 一 简单介绍 snipaste工具是一款开源免费的超级截图工具 它可以让你将截图贴到到电脑屏幕上
  • 20个热门少儿编程网站与应用【家长必读】

    少儿编程是新的文化潮流 它涵盖了儿童学习的方方面面 逻辑思维训练 系统化思考训练 问题解决能力训练 团队协作 创造性思维培养 你可以利用我们整理的这些得到广泛认可的少儿编程网站教孩子学会编程 例如code org tynker com和sc
  • 关于Java音频播放不循环和暂停、继续播放(非Android)

    我使用的是MediaPlayer播放 设置其不循环播放方法为setPlaybackLoop 需要暂停时 只需要设置setPlaybackLoop 为true 使用stop 方法 即可暂停播放 继续播放设置setPlaybackLoop 为f
  • 毕业论文:支持向量机在铝电解槽况分类中的应用

    1 前言 机器学习在分类中已经非常成熟 受限于本人的专业能力与认知 所以本论文 课题是我在机器学习领域的初步探索 在关键的算法和代码部分其实我也一知半解 所以我重点讲述机器学习应用的过程 及探讨如何增强自己论文的叙事性 以及如何利用Chat
  • freertos————互斥锁

    线程安全 多线程程序处于一个多变的环境 可访问的全局变量和堆数据随时可能被其他的线程改变 多个线程同时访问一个共享数据 可能造成严重的后果 出现问题的是之前移植了一个freemodbus的从站 多个任务访问全局变量保持寄存器区 导致最后读出
  • Vue.js中的[system]TypeError: Cannot read property ‘push‘ of undefined

    我在uni app中写一下代码时出现问题 system TypeError Cannot read property push of undefined data return date this getDate kind 养殖物异常 设备
  • C 语言中常用的函数,sizeof() 和 strlen()

    sizeof 函数用于获取数据类型或变量所占用的内存字节数 不管这个变量是什么类型 只要是在编译时就能确定其类型的表达式或变量 都可以作为 sizeof 的参数 例如 int a 10 int arr 10 printf d n sizeo