招生考试网
学历| 高考 美术高考 考研 自考 成考 专升本 中考 会考 外语| 四六级 职称英语 商务英语 公共英语 日语能力 翻译资格 JTEST
资格| 公务员 报关员 银行从业 司法 导游 教师资格 报关 财会| 会计证 经济师 会计职称 注册会计 税务师 资产评估 审计师
工程| 一建 二建 造价师 造价员 咨询师 监理师 安全师 医学| 卫生资格 执业医师 执业药师 执业护士 | 教案 论文 文档
IT类| 计算机等级 计算机软考 职称计算机 高校计算机 推荐-国家公务员 事业单位招聘 军校国防生 自主招生 艺术特长生 招飞
 3773考试网 - 计算机等级考试 - 考试辅导 - 计算机二级 - 正文

2014计算机二级C++考点知识分析:函数

来源:2exam.com 2014-4-9 23:20:37

 

 5.9 变量作用域与生存周期 

  1C+ +中变量的存储类型分为如下几种类型: 

  auto——函数内部的局部变量(auto可省略不写)。 

  static——静态存储分配,又分为内部和外部静态。 

  extern——全局变量(用于外部变量说明)。 

  register——变量存储在硬件寄存器中。 

  (1)自动变量 

  ①在函数内部定义的局部变量即为自动变量,用于说明自动变量的关键字auto可以省略。 

  ②在函数头部定义的自动变量作用域为定义它的函数;而在块语句中定义的自动变量作用域为所在块。与C不同,C+ +还允许在变量使用之前才定义变量。 

  ③编译程序不给自动变量赋予隐含的初值,故其初值不确定。因此,每次使用自动变量前,必须明确地赋初值。 

  ④形参可以看成是函数的自动变量,作用域仅限于相应函数内。 

  ⑤自动变量所使用的存储空间由程序自动地创建和释放。当函数调用时为自动变量创建存储空间,函数调用结束时将自动释放为其创建的存储空间。因此,自动变量随函数的调用而存在并随函数调用结束而消失,由一次调用到下一次调用之间不保存值。 

  (2)外部变量 

  ①在函数外部定义的变量即为外部变量。 

  ②外部变量的作用域是整个程序(全局变量)。 

  ③在C+ +中,程序可以分别放在几个源文件上,每个文件可作为一个编译单位分别编译。外部变量只需在某个文件上定义一次,其他文件若要引用此变量时,应用extern加以说明。(外部变量定义时不必加extern关键字)。 

  ④在同一文件中,若前面的函数要引用在其后面定义的外部(在函数之外)变量时,也应用extern加以说明。 

  ⑤外部变量是由编译程序在编译时给其分配空间,属于静态分配变量,对于数值型(整型、浮点型和字符型)外部变量来说,其有隐含初值0。 

  引进外部变量的原因:其一是只要程序运行外部变量的值是始终存在的;其二是外部变量可以在所有函数间共享。 

  在C+ +中,可以使用外部变量,但是,必须要清楚使用外部变量的副作用。使用外部变量的函数独立性差,通常不能被移植到其他程序中,而且,如果多个函数都使用到某个外部变量,一旦出现问题,就很难发现问题是由哪个函数引起的。在C+ +中,尽量不用或少用外部变量,可使用参数在函数间进行数据的传递。


  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件fjksw@163.com联系.
    最新文章
    推荐文章
  • 此栏目下没有推荐文章


  • | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号