If we reference an array, like
int array[10];
int *p = &array;
in GCC we have that p == array
, or p == *p
.
Beside the rationale explained in other answer (see here), is that a standard and defined behaviur, or some specific implementation could generate different address?
edit: to be clear the question is: is this in the C standard, and if it is, since when?