```
#include<stdio.h>

int main(void)
{
    char s[] = "Hsjodi", *p;
    for(p=s; *p; p++)
        --*p;
    puts(s);

    return 0;
}

```

This is a code snippet given in chapter 13 exercise of
K N King
[C Programming: A Modern Approach, 2nd Edn](https://smile.amazon.com/dp/0393979504/) 2008. The question asks for the output.

I was not able to understand and depict the output visually so I coded it in editor and executed it.

This code gives ***Grinch*** as output. Can anyone explain why? I'm really having hard time understanding pointers and Strings in C.