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