Explain the out put of this code about Pointers :     #include<stdio.h>
    main()
    {
    char *p="Hello world";
    int *q;
    p++;
    q=(int*)p;
    q++;
    printf("\n %s\n%s",p,q);
    }
The output of this program is this: 
ello world
world

Can anybody explain how this program works