C语言指针类迷惑性问题

(int *)ar如何理解?
为什么等价于ar【0】【0】的地址?

二维数据ar[M][N]的各元素在内存中是连续线性排列的(可以把二维数组看成按行排列存储到一个一维数组),数组名就是数组的首地址,也是第一个元素ar[0][0]的地址
(int*)ar是将数组名强制转换为指针类型,其值就是数组的首地址,也就是第一个元素的地址