The values of pointer variables are unsigned integer numbers which are addresses of other variables. An unsigned integer is allocated 4 bytes of memory for its storage on a typical 32-bit system. Thus, pointers to all types of data occupy the same size of memory because the value of a pointer is the memory address - an unsigned integer. However, the variables to which the pointers point to, of course, occupy different sizes of memory blocks according to their types.

It is clear from the output that size of memory block allocated for pointers of All types is 2 bytes, because value of a pointer is an unsigned number and on most of 32-bitsystems an unsigned number isallocated4 bytes. However, the variables themselves would occupy different sizes of memory blocks according to the type of a variable. The output also gives the address of x and address of its pointer ptrx in the computer memory (RAM of the computer). The address of x is FFF2 and address of ptrx is FFF0 which is 2 bytes away from FFF0.