A byte has an address, but an address takes up 4 bytes. How to understand this? !
There is an error in explaining that pointer variables occupy 4 bytes upstairs. It is not that the integer in C accounts for 4 bytes, but the address number consists of 32 bits in a 32-bit system and 64 bits in a 64-bit system, so the pointer variable accounts for 4 bytes in 32 bits, 8 bytes in 64 bits, and of course 4 bytes in 64 bits, which is also related to the compiler. Also, you can't say that an address takes up four bytes and an address only takes up one byte. It can only be said that the data type accounts for a few bytes. For example, integer int i = 9. We say that integer takes up four bytes, and the address of this integer variable is the first byte address of these four bytes.