#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 です。これは、引数として渡された 2 つの文字列strcmpが等しいことを意味します。しかしstrcmp、最初の引数は"DaygoodGood"であり、2 番目の引数は"Daygood"...
なぜこうなった?