If we have to hold an address of any data type then we require a pointer of that data type.
But a pointer is simply an address, and an address is always int
int
Because the type of a pointer tells the compiler that at a time on how many bytes you can perform the operation.
Example: in case of char, only one byte. And it may be different in case of int of two bytes.
char