Я читал этот оператор sizeof в C интерпретируется во время компиляции, и поскольку во время компиляции компилятор знает размер массива и его тип, 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;
}
Здесь размер массива неизвестен во время компиляции, тогда как он работает правильно?