最近在做ACM题 发现些c语音细节问题


#include<cstdio>
#include<cstring>

int main()
{
    char s[100];
    scanf("%s",s);
    if(-1>=strlen(s))
        printf("true\n");
    return 0;
}

图片说明

竟然打印出true 求解答!!!

在Visual C++ 6.0中,原型为size_t strlen(const char *string); ,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t;
-1转换成无符号了。所以变成一个很大的数

应该是 c语言 笔误 。。。。