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

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

img

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

img


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

img


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

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

它的结果是随机值。模拟实现strlen函数,只有找到\0才会结束。另外,字符串不能用int数组来存放。