Если array
- это двойной указатель, массив указателей или двумерный тип массива, да.
Если это пользовательский тип, то operator[]
и operator+
могут быть переопределены несовместимыми способами. Например, если array
является std::vector
, то array[x]
будет работать, а *(array + x)
- не будет.