这题为什么是不确定啊??

2025-02-23 00:53:13
推荐回答(2个)
回答1:

我承认我看到答案也吓了一跳。

以下为个人理解(度娘赛高)

首先 char x[] = {'0','2','4'};

这个语句是个陷阱 !

常规字符串赋值时 , 使用char x[] = "024",长度就是4(有效长度3加上一个结束符)

但是 : 逐个赋值时 , 字符串不会自动加结束符 !

所以 char x[] = {'0','2','4'} 后,x长度只有3

而对于strlen,是只要待判断字符串的元素不是0,就继续往后读取

如果分配给x的内存 后面相邻内存的值不为0,就会将相邻内存作为字符串长度的一部分,直到读入 \0 为止

因为这个strlen函数容易受到外部内存干扰,所以结果不确定

回答2:

题目呢...........