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

一、局部作用域      

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

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

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

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

二、全局作用域

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

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值