谢顶的神秘粉丝 2022-02-03 15:39 采纳率: 100%
浏览 33
已结题

模拟实现strlen如果数组用int类型存放会如何

这串代码为什么结果是17而不是20?

img

  • 写回答

3条回答 默认 最新

  • 慕雪华年 C/C++领域新星创作者 2022-02-03 15:58
    关注

    int类型的数组不能这样定义的,看调试窗口,是一个非常大的数字

    img


    你strlen函数里面的while循环是以*str找到\0为停止标准,但是在整型数组里面并没有这个\0
    函数输出的21,是因为它在内存里面找到了一个\0才停止

    img


    但如果你把数组的元素限制为6,只填入了5个数据的话,这样就能正确读出元素个数
    因为编译器会默认给第6个元素初始化为0

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月11日
  • 已采纳回答 2月3日
  • 创建了问题 2月3日

悬赏问题

  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问
  • ¥20 汇川小型plc控制小米微电机
  • ¥15 用MATLAB汇总拟合图
  • ¥15 智能除草机器人方案设计
  • ¥15 对接wps协作接口实现消息发送
  • ¥15 SQLite 出现“Database is locked” 如何解决?
  • ¥15 已经加了学校的隶属邮箱了,为什么还是进不去github education?😭
  • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题