У меня есть сомнения относительно следующего фрагмента кода:
int main()
{
int array1 = {1,2,3,4,5}; //error in c++ , warning in c
int array2[] = {1,2,3,4,5};
int array3[5] = {1,2,3,4,5};
}
Этот фрагмент кода дает ошибку в строке 3 в c++, но не в c?
Я знаю, что array1 на самом деле int и array2 и array3 являются массивами, поэтому почему компилятор c не показывает ошибку, а просто предупреждение: "лишние элементы в скалярной инициализации"
Используется ли такое определение и почему оно действует в c?