Printf unsigned long size_t 的奇怪输出

时间:2021-07-14 19:39:49

标签: c printf

我在测试 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?

1 个答案:

答案 0 :(得分:1)

初始化 int i to 0 解决了我的问题。

size_t  ft_strlen(const char *str)
{
    size_t  i;

    i = 0;
    while (*str++)
        i++;
    return (i);
}
相关问题