Когда я запускаю следующий код, он отлично работает для C:
#include<stdio.h>
int main(void)
{
const int x=5;
char arr[x];
printf("%d",sizeof(arr));
}
Но я не только прочитал, что const
квалифицированные переменные не являются константами real
(поэтому они не могут использоваться в case
состоянии switch-case
), но следующая ссылка из IBM подтверждает, что (IBMLINK) и говорит:
const int k = 10;
int ary[k]; /* allowed in C++, not legal in C */
Почему тогда мне разрешено использовать квалифицированную переменную const
в C как размер массива без каких-либо ошибок?