我在测试 printf 时遇到了这个问题。
这段代码输出5,这正是我想要的。
#include <stdio.h>
size_t ft_strlen(const char *str)
{
size_t i;
while (*str++)
i++;
return (i);
}
int main(void)
{
printf("%zu\n", ft_strlen("Hello"));
return (0);
}
但是,当我在 printf 上方声明 char *str;
时,输出显示 4294967301
为什么上面的声明会影响到printf?
答案 0 :(得分:1)
初始化 int i to 0
解决了我的问题。
size_t ft_strlen(const char *str)
{
size_t i;
i = 0;
while (*str++)
i++;
return (i);
}