c语言中为什么a[1>2][1]是对int a[2][3]中数组元素的正确引用

c语言中为什么a[1>2][1]是对int a[2][3]中数组元素的正确引用,而写成a[2][0],却是错误的?

a[1>2][1]相当于a[0][1]啊。因为1>2是逻辑表达式,结果是0
而a[2][0]越界了啊,行号下标2是越界的,只能是0或1

1>2这个表达式,1和2都是常量,所以这是恒为假的,等同于0,那么其实不就是a[0][1]吗
a[2]越界了呀

这是c语言的魔法
你甚至可以写 int n = 0; 然后用 n[a][1],也相当于a[n][1] (你肯定会说,什么,n又不是数组,这样也行???)
这就是这么神奇。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^