QQ在线咨询
售前咨询热线
15821572819
售后咨询热线
15821572819

IT行业、嵌入式工程师、Java面试题(43)—— 数组越界


下面这个程序执行后会有什么错误或者效果:


[cpp] view plain copy

  1. #define  MAX  255  

  2. int main()  

  3. {  

  4.     unsigned char A[MAX],i;  

  5.   

  6.     for (i=0;i<=MAX;i++)  

  7.     {  

  8.         A[i]=i;  

  9.     }  

  10. }  










解答:死循环加数组越界访问(C/C++不进行数组越界检查)

MAX=255

数组A的下标范围为:0..MAX-1,这是其一..

其二.当i循环到255时,循环内执行:

A[255]=255;

这句本身没有问题..但是返回for (i=0;i<=MAX;i++)语句时,

由于unsigned char的取值范围在(0..255),i++以后i又为0了..无限循环下去.










注:本文转载自http://blog.csdn.net/wqx521 ,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

分享