我无法理解以下代码中的位置c = 0和l = 0

时间:2019-05-17 20:15:13

标签: c

我无法理解下面的代码中的位置c = 0和l = 0.n是数组a中元素的数量,m是数组b中元素的数量。

for(i=2;i<=16;i++){
 c=0;
    for(j=0;j<2;j++)
    {
        if(i%a[j]==0)
        c++;
    }
    if(c==2)
    {
    l=0;
    for(k=0;k<3;k++)
    {
        if(b[k]%i==0)
            l++;
    }
    if(l==3)
        count++;}
}

请帮助。谢谢。

1 个答案:

答案 0 :(得分:-1)

根据我在评论中看到的内容,似乎使自己困惑的是所谓的局部变量

当您在某个位置定义变量时,其作用域实际上仅跨越写入变量的范围(从{})。当您进入该块时,其空间会动态保留在堆栈中,而当您离开该块时,由于堆栈框架被破坏,它的空间会自动释放。

总是建议只在真正使用变量的地方声明变量,而不是在程序顶部收集所有声明。首先,因为您确保以这种方式仅在需要时才分配内存,并会尽快自动释放内存。然后,因为它避免了使用可以在不相关的位置进行评估的标识符来污染名称空间,从而使错误更加难以发现。