Есть один случай, когда они могут отличаться в текущем языке Си.C99 допускает следующее:
void change (int s[static 2])
{
s[0] = 42;
}
, где [static 2]
накладывает ограничение на интерфейс функции, которую переданный указатель должен быть таким, чтобы s[0]
и s[1]
имели доступдопустимые объекты типа int
.В частности, интерфейс не допускает указателей NULL
.
Обратите внимание, что [static 1]
- это удобный способ просто указать, что указатель должен указывать на действительный объект.