```
#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;
}

```

Here the output is 0, which implies that the two strings passed as arguments to `strcmp` are equal. But for `strcmp` the first argument is `"DaygoodGood"` and second is `"Daygood"`...

Why is this happening?