C++笔记(三)——作用域

一、局部作用域      

        局部作用域描述的是函数体中变量、常量等对象的作用范围。每一个函数都有一个独立的局部作用域,在函数体中定义的变量、常量,对外部函数是不可见(不可用)的,因为它处于函数的局部作用域中。

        1.对于函数体中出现的复合语句,也有其独立的局部作用域,在其中定义的对象,复合语句之外是不能访问的

         2. 对于处于同一局部作用域的对象来说,对象是不允许重名的

         3. 当编译器在当前代码处发现变量名时,它将在当前的局部作用域内搜索变量的定义,如果没有发现变量的定义,则向外一层的局部作用域搜索变量的定义,直到搜索完全局作用域。如果还没有发现变量的定义,则会出现标识符没有定义的错误。如果在嵌套局部作用域的外层和内部作用域定义了同名的变量,对于内层的局部作用域变量来说,它将隐藏外部局部定义域中的变量。

二、全局作用域

        全局作用域是指函数、变量、常量等对象的作用范围在整个应用程序,这些对象在整个应用程序中都是可用的。在全局作用域内定义的对象被称之为全局对象。例如,在全局作用域内定义的函数被称为全局函数,在全局作用域内定义的变量称之为全局变量。全局对象的生命期开始于应用程序的运行,结束于应用程序的退出。

        全局变量的定义与局部变量的定义相同,只是在函数外部进行定义。

        对于全局变量来说,如果没有进行初始化,其存储区为0。因此,对于整型的全局变量,如果没有进行初始化,其值为0。但是,对于局部变量来说,如果没有进行初始化或赋值,其值是不可预见的。此外,在整个应用程序中,一个全局变量只能定义一次,不能重名。

        如果在函数内部定义了一个与全局变量同名的局部变量,则全局变量被隐藏,如果需要访问全局变量,需要使用域运算符“::”

猜你喜欢

转载自blog.csdn.net/qq_37764129/article/details/81778331