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