With sizeof(*rp) you dereference a void pointer, you should never do this! Hence you get the size of a void which is 1. To get the size of the pointer use sizeof(rp), this size should equal the size of all other pointers.
With sizeof(*ip) you are requestjng the size of an int, which is on your platform 4 bytes, same as sizeof(int). Only the last two examples print the size of a pointer.
Hello is a pointer to constant characters, you can use this as a regular pointer, although you cannot modify the content when pointing to the "hello world" string
Does this help?