最近我在做C语言时,发现一个问题,输出结果和预期不一样,不知道是不是C编译器的bug,感觉奇怪。
#include#include int main() { char a[10] = "abcdefghi"; int t = 0; if (strlen(a) - 100 > 0) t = 10; printf("%dn", t); return 0; }
运行这段代码后,输出是10,而不是0,不知道为什么。
如果把strlen(a)赋值给新变量,输出结果又正确了,为0。有大佬知道原因么?
#include#include int main() { char a[10] = "abcdefghi"; int t = 0; int len = strlen(a); if (len - 100 > 0) t = 10; printf("%dn", t); return 0; }



