nice公司的一道笔试题讲解
Posted 小赵小赵福星高照~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nice公司的一道笔试题讲解相关的知识,希望对你有一定的参考价值。
nice公司的一道笔试题讲解
#include <stdio.h>
int main()
{
int i = 0;
int arr[] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<=12; i++)
{
arr[i] = 0;
printf("haha\\n");
}
return 0;
}
这段代码的运行结果是什么呢?
运行后会进入死循环打印haha,数组明明越界了,为什么不报错呢?是因为它陷进了死循环,停不下来,所以不会报错。
我们进行调试,调试后发现arr[12]恰好就是i,改变arr[12]时也改变i,所以进行了死循环。
原因如图解释所示:
总结:
1.i和arr是局部变量,局部变量是放在栈区上的
2.栈区的使用习惯是:先使用高地址空间,再使用低地址
以上是关于nice公司的一道笔试题讲解的主要内容,如果未能解决你的问题,请参考以下文章