【发布时间】:2020-05-13 20:26:24
【问题描述】:
#include <stdio.h>
main()
{
int a[2][5], i,j; //2d array declaration
for(i=0;i<=1;i++) //first loop for 1st dimension
{
for(j=0;j<=4;j++) //nested loop for 2nd dimention
{
printf("Value for a[%d][%d] is : ", i,j);
scanf("%d", &a[i][j]); //asks for value
}
}
}
在这个程序中,当循环执行时,在第一次运行时,i=0,并且在其中 j=0,1,2,3,4。 完成后,到了 i=1 的第二维,为什么在条件已经为假(j
所有这些常量值都保存在哪里?再次运行嵌套循环时是否会重新启动 j 的值?
【问题讨论】:
-
除此之外:您正在使用幻数作为数组维度和循环迭代限制,但由于引入了引用相同限制的 不同 幻数,它们会变得更糟。因此,鉴于您对数组维度进行了硬编码,我将使用 same 值,方法是将循环
for(i=0; i<=1; i++)改写为for(i=0; i<2; i++)同上另一个。稍后,当您将它们替换为变量或定义的名称时,您只需查找一个相关值。遵循代码也更容易。