| 你查看下内存分布,ARR[2][2] ={{0,1},{2,3}},你同样可以用ARR[3]调用,结果是3。这两个是同一个地址 |
| 会溢出啊,运行正常是你没测试出来。会写到其他内存去,只不过可能那段内存没有其他变量用,就没有造成错误。 |
| 单片机运行时不检查数组是否越界,一但越界可能会导致其他数组或变量的值被破坏。 |
| 这是你走运,数组后面没有其他数据,而且xdata空间足够,所以越界没出现错误。在电脑上面这么做试试,八成要崩溃。 |
| 数组名类似一个指针,也就是起始地址,后面应用的话,相当于在起始地址上加偏移地址,超出数组范围可以的,要自己写程序注意 |
|
C语言 本身不帮你检测是否走出范围的,要程序员掌控的。 |