为了账号安全,请及时绑定邮箱和手机立即绑定

输出结果为什么是7?!不应该是3吗?

输出结果为什么是7?!不应该是3吗?

C
天涯尽头无女友 2023-03-15 21:17:01
#include <stdio.h>#include <string.h>void main(){char x[]={0xBC,0xDD,0xCA};int len=strlen(x);printf("%d\r\n",len);}
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

sizeof(x)应该是3
strlen(x)就不一定,因为strlen()计算数组元素个数直到遇到'\0'。显然在索引前3个元素时并没有遇到'\0',因此编译器会继续越界索引。

查看完整回答
反对 回复 2023-03-18
?
HUWWW

TA贡献1874条经验 获得超12个赞

strlen是遇到 '\0' 算有多少个字节的,显然,x[]根本没有一个值是0,因此strlen是任意的,要想得到3,应该用sizeof

查看完整回答
反对 回复 2023-03-18
  • 2 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信