Многомерные массивы в C: они зубчатые?

Простой вопрос о языке программирования C (ANSI-C):

Являются ли многомерные массивы в C зазубренными?

Я имею в виду - мы говорим о «массиве массивов» (один массив указателей на другие адреса в памяти), или это просто «длинный одномерный массив» (который последовательно хранится в памяти)?

Что меня беспокоит, так это то, что я уверен, что:

matrix[i][j] эквивалентно* ( * (matrix + i) + j)