c
is a pointer to an array.
*c
is the array pointed at by the pointer c
.
Arrays in expressions are converted to a pointer to the first element of the array. (A few exceptions exists).
Therefore *c
is converted to the pointer to the first element of the array.
Typically the starting point of an array and the starting point of the first element of an array are the same.
This is why c
and *c
has the same address.
&(*c)[0]
is explicitly expressing "the address of the first element of the array *c
", which is the same as what is converted from *c
.
c
is a pointer to an array, so arrays, not elements of the arrays, are obtained by c[i]
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…