Pointer is a variable that points to a specific location of memory (i.e. RAM). Same is true for char pointers also therefore size of char pointer is 4 bytes
Yes. that is correct in a 32-bit system. (4 bytes for pointer data type). It doesn't matter which type of variable it is pointing to. All it needs to do it hold the address.
Basically when ever we are using pointer that refers some other variables when the pointers refer some variable means it contains it address and addresses are stored in integer format. If the compiler support 32-bit then size of char * is 4 BYTES.
Actually a pointer is just a address holder so its size is always that of an int data type what ever may be the type of pointer.In a 16-bit compiler its 2 bytes and in 32-bit compiler its 4 bytes(ie depeds on sizeof(int))