В C параметр функции типа массива такой же, как и тип указателя, поэтому следующие параметры одинаковы:
static int foo(int w[]);
static int foo(int* w);
Так что да, допустимо передавать NULL
этой функции.
Учитывая, что имя массива является указателем на его первый элемент
Не совсем.Массив распадается на указатель на свой начальный элемент при большинстве обстоятельств , за исключением случаев, когда он является операндом sizeof
или унарным &
операторомоператор).