C++中大括号{}的作用

概述

在C/C++中大括号指明了变量的作用域

在大括号内声明的局部变量其作用域自变量声明开始,到大括号之后终结。

{ } 里的内容是一个“块”,单独的{ }在执行顺序上没有改变,仍然是顺序执行,

例子1

void MyProcess(MyType input, MyType &output)

{
   MyType filter = input;

   {
      MyType temp;
      step1(filter,temp);
   }


   {
      MyType temp;
      step2(filter,temp);
   }


   {
      MyType temp;
      step3(filter,temp);
   }

   output = filter;
}

以上程序实现了简单的管道/过滤器结构:

               temp1    temp2   temp3

                  ↓            ↓             ↓ 

input --> step1 --> step2 --> step3 --> output

temp都是临时变量,

如果没有大括号的约束,每个临时变量都存在于函数作用域中,那么频繁增减流程时出错的概率大大增加。

放在大括号中,不仅程序阅读起来很清楚,而且也不容易出错

例子2

{
    int a=0; 
    { 
        int b=0; 
        a=1; //正确,还在a的作用域中 
    }
    b=1; //错误,因为不在b的作用域,b已经被销毁了
}
 
发布了100 篇原创文章 · 获赞 175 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/f2006116/article/details/89302394