когда мне нужно передать массив функции, кажется, все следующие объявления функции будут работать
void f(int arr[])
void f(int arr[4]) // is this one correct?
для этого:
int a[]={1,2,3,4};
f(a);
Но когда я назначаю массив другому массиву, он терпит неудачу
int a[]={1,2,3,4};
int b[4] = a; // error: array must be initialized with a brace-enclosed initializer
Итак, почему массив, переданный как аргумент функции, в порядке, но используется для определения простого простого назначения?