The first thing to explain
int **a[3][4]
Defines a set of two-dimensional pointer arrays that point to pointer variables.
That is, a 3-row, 4-column array of pointers is defined, each pointing to a pointer,
From the storage structure, it is an array that stores 12 pointer variables.
The question is, what is the number of bytes "A" that the Lord says? ”
What's a in here, exactly?
The actual meaning of a is an address that represents A[3][4] the first address of this array,
For a as a single address, it occupies 4 bytes;
At the same time A is a[3][4] This array is a representation,
If you use sizeof (a) to solve it, it represents the space occupied by the a[3][4] array,
Instead of the storage space that an address occupies,
This is the space occupied by 12 pointer variables, which is naturally 48 bytes.
64 bits A pointer is 8 bytes, and 32 bits A pointer takes up 4 bytes.
How many bytes does int **a[3][4] occupy?