To zależy jak została zaalokowana. Jeśli na stosie ("normalnie" tzn. np. int arr[3][4][5]), to wzór będzie wyglądał tak:
ptr = iz*sy*sx + iy*dx + ix
iz, iy, ix to szukany przez ciebie indeks w odpowiednio: 2, 1 i 0 wymiarze
sz, sy, sx to kolejne rozmiary wymiarów 2, 1 i 0
ptr wskazuje na, określony powyższymi, indeks
Przy czym za punkt odniesienia możesz uznać &arr[0][0][0]. Oczywiście analogicznie wzór będzie wyglądał dla dowolnej ilości wymiarów.
Jeśli zaalokowałeś taką tablice dynamicznie ("na stercie"), to takiego wzoru zwyczajnie nie ma, bo każdy indeks wymiaru >0 wskazuje na kolejną tablice, która może znajdować się gdziekolwiek w pamięci. Tablice wielowymiarowe na stosie są ułożone w ciągłym bloku pamięci, więc nie ma takiego problemu. Zobacz tu: https://stackoverflow.com/questions/2565039/how-are-multi-dimensional-arrays-formatted-in-memory