Was bedeutet es, die Adresse der Array-Variablen zu erhalten?
Heute habe ich ein C-Snippet gelesen, das mich wirklich verwirrt:
#include <stdio.h>
int
main(void)
{
int a[] = {0, 1, 2, 3};
printf("%d\n", *(*(&a + 1) - 1));
return 0;
}
Meiner Meinung nach,&a + 1
macht keinen Sinn, läuft aber fehlerfrei.
Kann jemand erklären, was es bedeutet, danke. Und deckt K & R C Bible dies ab?
UPDATE0: Nachdem ich die Antworten gelesen habe, stelle ich fest, dass mich diese beiden Ausdrücke hauptsächlich verwirren:
&a + 1
, das in SO gefragt wurde:Über den Ausdruck "& anArray" in c
*(&a + 1) -1
, was mit dem Zerfall von Arrays zusammenhängt.