Согласно cppreference:
Если тип выражения является типом массива переменной длины, выражение оценивается и размер массива, который он оценивает, вычисляется во время выполнения.
Это означает: если тип выражения является типом VLA, тогда вычисляется выражение. Например:
#include <stdio.h>
int main() {
int i = 0;
int a[i];
printf("%zu\n",sizeof(a[i++]));
printf("%d\n",i); // Here, print 0 instead of 1
return 0;
}
Итак, согласно ссылке, здесь i
становлюсь 1
. Но, с моим компилятором GCC, i
печатаю как 0
.
См. Демо-версию Wandbox.