Сделайте это:
*(*(m+2) + 4)
Это то, что действительно делает оператор []
, здесь массив будет dacay к указателю.
краткое объяснение этого:
в *(m+2)
, m
используется в качестве значения int(*)[4]
, указывающего на первую "строку" m
, затем разыменовывая m+2
, получают ссылку на 1D массив третьего "row".
Затем этот результат уменьшается до int*
prvalue снова, указывая на первый элемент третьей "строки", затем разыменовывая this_value + 4
, мы успешно получаем 5-й элемент 3-й строки, это точный результат, который вы получите, используя m[2][4]
.