Wie sizeof (array) arbeitet zur Laufzeit?

Ich habe gelesen, dass der sizeof-Operator in C zur Kompilierungszeit interpretiert wird, und da der Compiler zur Kompilierungszeit die Array-Größe und deren Typ kennt, kann sizeof die Anzahl der von array belegten Bytes berechnen.

<code> #include<stdio.h>
 #include<string.h>
 int main()
 {
    int n;
    scanf("%d",&n);
    int a[n];
    int s=sizeof(a);
    printf("%d",s);
    return 0;
 }
</code>

Hier ist die Größe des Arrays zur Kompilierungszeit nicht bekannt. Wie funktioniert es dann richtig?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage