我们是否可以包括;strcmp“;在printf语句中?

我们是否可以包括;strcmp“;在printf语句中?,c,C,有人能解释一下这行代码的含义吗 printf("%d",strcmp("strcmp()","strcmp()")) strcmp()负责字符串的字典比较(字符顺序),即第一个字符与第一个字符进行比较(如果相等),然后与第二个字符进行比较,依此类推。 其签名如下: int strcmp(const char *str1, const char *str2) 此函数返回如下值: int strcmp(const char *str1, const char *str2) 如果

有人能解释一下这行代码的含义吗

      printf("%d",strcmp("strcmp()","strcmp()"))
strcmp()负责字符串的字典比较(字符顺序),即第一个字符与第一个字符进行比较(如果相等),然后与第二个字符进行比较,依此类推。 其签名如下:

int strcmp(const char *str1, const char *str2)

此函数返回如下值:

int strcmp(const char *str1, const char *str2)
如果返回值<0,则表示str1小于str2

如果返回值>0,则表示str2小于str1


如果返回值=0,则表示str1等于str2。

该代码只是一个笑话

它只是比较两个固定字符串。为了使其混淆,这两个字符串包含库函数(strcmp)的名称,但这并不能使其成为函数调用

代码

printf("%d",strcmp("strcmp()","strcmp()"))
类似于

printf("%d",strcmp("A","A"))

它将打印
0
(零),因为字符串是相同的,
strcmp
在字符串进行精确比较时返回零。

您不了解哪部分?您是否编译并运行了此代码,并查看了它打印的输出?下面是
strcmp
description在这方面比较了什么?尝试将它分成多个语句(借助临时变量),看看你是否能更好地理解它。使用类似的代码
printf(“%d”,strcmp(“apples”,“pears”))可能会更清楚作为原始文字文本可能是为了混淆-不是可执行代码。