#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
static char s1[]="Good";
static char s2[20];
static char s3[20]="Day";
int i = strcmp(strcat(s3,strcpy(s2,s1)),strcat(s3,"good"));
printf("%d\n",i);
return 0;
}
这里的输出是 0,这意味着作为参数传递给的两个字符串strcmp是相等的。但是对于strcmp第一个论点是"DaygoodGood",第二个是"Daygood"......
为什么会这样?