c-Printf unsigned long size_t的奇怪输出



我在测试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);
}

最新更新