![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
关于strlen()和sizeof()使用中遇到的问题总结
1个回答
展开全部
1:请慎用strlen()这个函数。
答:曾经把一个char[]数组赋值给了char* 变量,然后strlen()这个char*变量。返回发现得到的长度超过真实的字符数组长度了。官方文档中介绍strlen()这个函数。他会开始遍历字符指针,直到遇到\0.所以当你不能明确知道你操作的字符数组结尾是\0的话,请谨慎使用strlen()这个函数。
2:请慎用sizeof()这个操作符。
答:曾经在一个文件中定义了char[]数组,然后其他其他文件中引用,引用时用到了extern关键字,然后用sizeof()这个操作符想获取char[]字符数组的真实长度。发现报错。因为sizeof()是在编译阶段无法获取char[]真是的长度。然后想到一个简单的办法,就是定义一个结构体,里面包含cha[]数组,和len,就是字符数组的长度。就可以很好的解决这个问题。
答:曾经把一个char[]数组赋值给了char* 变量,然后strlen()这个char*变量。返回发现得到的长度超过真实的字符数组长度了。官方文档中介绍strlen()这个函数。他会开始遍历字符指针,直到遇到\0.所以当你不能明确知道你操作的字符数组结尾是\0的话,请谨慎使用strlen()这个函数。
2:请慎用sizeof()这个操作符。
答:曾经在一个文件中定义了char[]数组,然后其他其他文件中引用,引用时用到了extern关键字,然后用sizeof()这个操作符想获取char[]字符数组的真实长度。发现报错。因为sizeof()是在编译阶段无法获取char[]真是的长度。然后想到一个简单的办法,就是定义一个结构体,里面包含cha[]数组,和len,就是字符数组的长度。就可以很好的解决这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询