Perhaps an odd question..

I'm currently struggling to understand why the following equates to true i.e. "Hello World" is printed to the console? I've always thought that string comparison in C had to be done using ***strcmp*** or similar. 

```
char *a = "Hello";
char *b = "Hello";

if(a == b)
{
    printf("Hello World\n");
}

```

I also thought that this would only equate to true if the addresses were equivalent? Is it the fact that they're literals?

*PS. Yes, this is scarcely related to an assignment, but I've just come up with the above off the top of my head. - this doesn't answer the assignment in any way.*