Do the following pieces of code do the exact same thing?
is *(*(array+ x) + y) = 1; the same as array[x][y] = 1;
*(*(array+ x) + y) = 1;
array[x][y] = 1;
If array is a double-pointer, array of pointers, or 2-D array type, yes.
If it's a user-defined type, then operator and operator+ might be overridden in inconsistent ways. For example, if array is a std::vector then array[x] will work and *(array + x) will not.
*(array + x)