for后面的两个语句应该放在{}里面,否则你现在这样就是for赋值完成后输出一个结果,这个结果是无法确定的,正确的程序是:
#include
void main()
{
int a[10],b;
for(b=0;b<=9;b++)
{
a[b]=b;
printf("%d ",a[b]);
}
}
因为你那输出时,b=10;所以输出的是个随机数
因为你 for 循环里面只有一个赋值语句,所以当你执行完for语句之后,b=10,然后你打印b[10]是一个越界了的数,所以数值是一个不确定的值,因为这个空间的值并没有赋值。
你可以加个括号,如下:
for(b=0;b<=9;b++)
{
a[b]=b;
printf("%d",a[b]);
}
这个答案不是唯一的,信不信你可以在找其他人的电脑或者不同的编译环境下运行,你就会发现这个结果会发生变化,原因是你这个printf输出的是a[10]的结果,你根本没有定义这个a[10]那么就意味着这是一个随机值。
printf("%d",a[b]); //此时 b = 10,a[b] = ??未知。
修改:同楼上。