小编Sub*_*ram的帖子

strcmp输出之谜 - strcmp如何实际比较字符串?

我想知道为什么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 的输出?这是在这里玩的编译器吗?如果是这样,它的确切优化是什么?

c string strcmp

3
推荐指数
2
解决办法
113
查看次数

标签 统计

c ×1

strcmp ×1

string ×1