微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > for循环下标超出数组范围程序时如何执行?

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

时间:10-02 整理:3721RD 点击:
小弟愚昧,弱弱的问一个问题,如下面程序,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];                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
   }
  }
}
}

数组也不过是内存中某一地址的一些数据。每一个数组中的数据对应内存中一个地址上的数据,超出了,就是下一个地址上的数据,不过,这个数据不知道是什么意义了。
要是用系统可能 会内存溢出,程序跑飞吧。

没有什么影响,继续往下执行

上面这个是按键检测函数,可是这样导致数码管都不显示了,更改那个i的范围后就正常了

非常感谢你的回复

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top