Cのsizeof演算子はコンパイル時に解釈され、コンパイル時にコンパイラは配列のサイズとその型を知っているので、sizeofは配列が占めるバイト数を計算できることを読みましたが、次のコードではsizeofはどのように機能しますか?
#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;
}
ここで、配列サイズはコンパイル時に不明ですが、どのように正しく機能していますか?