变量的作用域

来源:互联网 发布:淘宝买鱼缸 编辑:程序博客网 时间:2024/04/27 15:55

C++中变量的作用域一般是两个对应的花括号之间的区域。下面一段程序:

int main()

{

     int sum=0;

     for(int i=0; i<10; i++)

     {

            sum += i;

     }

    cout  << sum << endl;

    return 0;

}

变量sum的作用域是整个main函数,而变量i的作用域为for循环内。在编写代码的时候,有时可能会使用同名的变量,当然这样的编码风格会存在大量的BUG!例如:

int main()

{

     int i=0; 

    for(int  i=0; i<10; i++)

    {


    }

   cout << i << endl;

    return 0;

}

上面存在两个变量i,在for循环内,实际递增的是第二个i,所以最后输出i应该为0。实际编码要尽量避免变量重名。接下来一段程序是项目过程中遇到的BUG程序:

int k=0;
//将整数转化为字符串
 for(int j=num, k=0;   j>0&&k<10;  j/=10, k++)
{
     ch[k] = j%10 + '0';
}
  ch[k] = '\0';

程序在for循环内不小心重新声明一个k,导致之前定义的k被屏蔽,结果可想而知。

上述错误,排查了很久,其根本原因是编码风格不良和对变量作用域的忽视。


原创粉丝点击