我想知道为什么strcmp()在同一个函数中多次使用会返回不同的值.以下是该计划.第一种情况我知道为什么它打印-6.但在第二种情况下,为什么打印-1?
#include<stdio.h>
#include<string.h>
int main()
{
char a[10] = "aa";
char b[10] = "ag";
printf("%d\n",strcmp(a, b));
printf("%d\n",strcmp("aa","ag"));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它产生的输出低于
[sxxxx@bhlingxxx test]$ gcc -Wall t51.c
[sxxxx@bhlingxxx test]$ ./a.out
-6
-1
Run Code Online (Sandbox Code Playgroud)
为什么第二个strcmp()-1 的输出?这是在这里玩的编译器吗?如果是这样,它的确切优化是什么?