问个C语言for循环的问题

2025-03-24 22:18:35
推荐回答(5个)
回答1:

数组越界知道不?
main()
{
int a[3]={1,2,3};
int i;
for(i=0;i<=2;i++)
a[i]=i;
printf("%d",a[i]); /*这里i=3,a[3]就是越界了*/
getch();
}

修改
main()
{
int a[3]={1,2,3};
int i;
for(i=0;i<=2;i++)
{
a[i]=i;
printf("%d",a[i]);
}
getch();
}

回答2:

我觉得应该是这样的,for循环结束之后i是等于3的,而a[3]是没有赋值的,所以系统输出一个随几数,刚才我运行了一下,输出的就是-18

回答3:

注意你的输入语句是:
printf("%d",a[i]); 是打印的a[3]指向的这段内存,而这段内存区域你并没有指定任何初始值。

回答4:

注意,a[3]是从a[0]开始的,3其实是0.1.2

另外{}也有问题

for(i=0;i<=2;i++)
{
a[i]=i;
printf("%d",a[i]);
getch();
}

回答5:

for(i=0;i<=2;i++)
a[i]=i;
运行后i=3
a[3]=?
越界,-34