关于#c语言#的问题:int main () { if(strlen(a)-2 > 0) printf("%d\n", strlen(a)-2)

#include
#include

char a[] = "1";

int main () {
if(strlen(a)-2 > 0)
printf("%d\n", strlen(a)-2);
return 0;
}

为什么结果是输出:-1

strlen(a)值为1,而strlen的返回值是无符号型,导致strlen(a)-2的结果也是无符号型,最终输出1-2=-1

遇到这种问题,基本都是因为你正编写的文件和运行的文件不是一个文件
要么你干脆弄错了要执行的文件,要么是语法有错误没有编译通过,IDE提示你要不要执行之前已经生成的exe你点了是