for循环下标超出数组范围程序时如何执行?

2019-07-15 15:55发布

小弟愚昧,弱弱的问一个问题,如下面程序,for循环语句中下标超出数组个数范围,当i=4的时候,程序会如何执行?

void KeyDriver()
{
unsigned char i,j;
static unsigned char backup[4][4] = {
   {1,1,1,1}, {1,1,1,1}, {1,1,1,1}, {1,1,1,1},
};

for (i = 0; i <= 4; i++)
{
  for (j = 0; j <= 4; j++)
  {
   if (backup[j] != KeySta[j])
   {
    if (backup[j] == 0)
    {
     KeyAction(KeyCodeMap[j]);
    }                              
    backup[j] = KeySta[j];                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
   }
  }
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
liujinyi016
1楼-- · 2019-07-15 20:34
数组也不过是内存中某一地址的一些数据。每一个数组中的数据对应内存中一个地址上的数据,超出了,就是下一个地址上的数据,不过,这个数据不知道是什么意义了。
要是用系统可能 会内存溢出,程序跑飞吧。
zhangwm_82
2楼-- · 2019-07-15 21:18
没有什么影响,继续往下执行
fengkuangge
3楼-- · 2019-07-16 02:25
 精彩回答 2  元偷偷看……
fengkuangge
4楼-- · 2019-07-16 03:10
jinyi7016 发表于 2015-10-17 22:58
数组也不过是内存中某一地址的一些数据。每一个数组中的数据对应内存中一个地址上的数据,超出了,就是下一个地址上的数据,不过,这个数据不知道是什么意义了。
要是用系统可能 会内存溢出,程序跑飞吧。

非常感谢你的回复

一周热门 更多>