I have learned that char \*p means "a pointer to char type"

and also I think I've also learned that char means to read 

that amount of memory once that pointer reaches its' destination.

so conclusively, in

```
char *p = "hello World";

```

the p contains the strings' address and 

the `p` is pointing right at it

Qusetions. 

1. if the p points to the string, shouldn't it be reading only the 'h'???
since it only reads the sizeof a char?  

why does `printf("%s", p) print the whole string???
2. I also learned in Rithcie's book that pointer variables don't possess a data type.
 is that true???