请问一下这个简单程序

来源:百度知道 编辑:UC知道 时间:2024/05/24 01:01:32
#include "stdio.h"
void main()
{
int buf[8];
for(int i = 0; i<8;i++)
{
buf[i] = 1;
}
for (int k =0;k<8;k++)
{
printf("%d\n",buf[i]);
}
}
结果为什么不是八个1
为什么是i输出的是随机数?

你的i是在第1个for里声明的,有效域不同

最后的i改成k就可以了

printf("%d\n",buf[i]); 改为printf("%d\n",buf[k]);

同意以上的观点,其实他们的思想是一样的 .