C,18讲
小甲鱼说这段代码中输出的是0 1 2 3 4 5 6 7 8 9 10
可是明明输出
0 1 2 3 4 5 6 7 8 9 111
使用的是Windows系统DEV-C++
上代码——
#include <stdio.h>
int main()
{
int a, i;
for (i = 0; i <= 10; i++)
{
a = i;
}
a = 111;
for (i = 0; i <= 10; i++)
{
printf("%d\n", a);
}
return 0;
} 越界了,错误代码没有研究价值 都搞越界了,研究这个干嘛? 程序中只给a分配了10个字节的空间,若强行给它多于10个数据的话,有时候也不会报错,但是是有风险的,毕竟多出点那些数据所占的空间并没有分配给该程序,很有可能会被其他程序篡改。
具体输出会是111还是其他的什么值都不确定,也有可能是10(这个算是其他值)。
页:
[1]