У меня есть сомнения относительно следующего фрагмента кода:
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
?