净网大师苹果版 ipad:有关TC的简单问题!

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 21:56:23
请帮我解释下下面的程序
main()
{int a[1],i;
i=1;
a[1]=i;
printf("%d",a[i]);
} 这个程序的运行结果是1
但如果把i=1改为i=2,则结果为285!

呵呵
你这个数组越界了
你定义的数组只有一个值,它是从下标0开始的。
也就是说你只可以用a[0]来访问和操作。a[1]的操作是没有意义的。

你的数组只定义了一个变量就是
a[0]!不存在a[1]这个变量
你试图给一个未知变量赋值是错误的
所以输出的随机数

你调用的是未知空间,这样做结果是未知的,你申明了a[1]数组,则应该使用 a[0]=i;printf("%d",a[0]); 调用越界下标的结果是不确定的.