C++中局部变量可以和全局变量重名吗?
这是一个作用域的问题。一个声明将一个名字引进一个作用域;局部变量(通常在函数中定义)的作用域是从声明的那一点开始,直到这个声明所在的块结束为止(一个块就是由{}围起来的一段代码)。全局变量(在所有函数、类、命名空间之外定义)的作用域从声明的那一点开始,直到这个声明所在的文件的结束。与全局变量重名的局部变量可以屏蔽全局变量,如果想在块内使用全局变量需要通过作用域解析运算符::引用。 见下例:

//global_local.cpp
#include <iostream>
using namespace std;
int x ;   //定义一个全局变量x
int main()
{
    int x ; //屏蔽全局变量x
    cout<< "Global x Initial value = "<< ::x<< endl;
    cout<< "Local x Initial value = "<< x<< endl;
    x = 5;          //对局部变量x赋值
    ::x = 6;      //通过作用域解析运算符::引用全局变量x,并且改变其值
    cout<< " After assignment Global x = " << ::x<< endl;
    cout<< "After assignment Local x = " << x <<endl;
    return 0;
}
上述例子输出结果为:
Global x Initial value = 0
Local x Initial value = 11239412
After assignment Global x = 6
After assignment Local x = 5
从上面的例子还可以看出,如果没有显示初始化,那么全局变量、静态局部变量等静态对象会被自动初始化为适当类型的0,而局部对象(也称为自动对象)和在自由存储区里建立的对象(动态对象或者堆对象)将不会被初始化。

原文链接:C++中局部变量可以和全局变量重名吗?_xiaozi_新浪博客

C/C++全局变量和局部变量作用域问题相关推荐

  1. c语言全局变量和局部变量作用域重合时,c语言全局变量与局部变量(当变量重名时)的使用情况...

    ABP框架 - 时间 文档目录 本节内容: 简介 时钟 客户端 时区 客户端 绑定器与转换器 简介 虽然有些应用目标市场只是在一个时区,有些应用目标市场是许多不同时区,为满足这种需求并集中化日期操作, ...

  2. 认清JavaScript和JAVA全局变量和局部变量的作用域

    认清JavaScript和JAVA全局变量和局部变量的作用域 2010年2月28日 george 发表评论 阅读评论 通过淘宝面试题来认清JavaScript和JAVA全局变量和局部变量的作用域 注意 ...

  3. python函数作用域包括局部变量和参数_python函数变量的作用域声明(全局变量和局部变量)...

    函数变量的作用域声明(全局变量和局部变量) 引入问题: 局部变量: 局部变量:定义在函数内部的变量,它的作用域也仅限于函数内部,出了函数就不能使用了. 例如: #encoding = utf-8 de ...

  4. C语言中全局变量和局部变量,作用域与生命周期的相关问题。

    C语言中变量分为局部变量和全局变量: 在程序的开头定义的是全局变量,在函数内部定义的是局部变量. 在这里涉及2个概念,作用域与生命周期. 作用域指的是描述变量在哪段代码中有效:生命周期指的是变量什么时 ...

  5. python变量作用域图解_图解python全局变量与局部变量相关知识

    这篇文章主要介绍了图解python全局变量与局部变量相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 了解全局变量和局部变量之前,我们先来了解 ...

  6. 【C语言】数据存储分类(动态、静态存储)、作用域(全局变量、局部变量)详解--(已配图,更方便理解)

    目录 1.变量分类(引入存储类别) 1)存在时间看动态存储还是静态存储 2)作用域:局部变量和全局变量 1.变量分类(引入存储类别) 变量和函数都有两个属性:数据类型和数据存储类别(auto自动.st ...

  7. Python变量作用域(全局变量和局部变量)

    Python变量作用域(全局变量和局部变量) 所谓作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用.有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只 ...

  8. 作用域之全局变量和局部变量

    一句话概括作用域:变量和函数的可访问范围 作用域分为三种:全局作用域(全局变量),局部作用域(局部变量),块级作用域(es6新增) 什么是全局变量(在函数外定义的变量) 什么是局部变量:局部变量也叫函 ...

  9. python函数用法详解2(变量的作用域(全局变量、局部变量)、共享全局变量、函数返回值、函数的参数(位置参数、关键字参数、默认参数、不定长参数)、拆包、交换变量值、引用、可变和不可变类型)

    1. 变量作⽤域         变量作⽤域指的是变量⽣效的范围,主要分为两类:局部变量和全局变量. 局部变量         定义在函数体内部的变量,即只在函数体内部⽣效. def testA(): ...

最新文章

  1. C#实现Des加密和解密
  2. 【 FPGA 】按键消抖与LED灯流动小实验
  3. 以太网单播、组播、广播
  4. php修改网页打印纸张 份数,打印机上复印10份怎么设置
  5. 深入理解Spring Redis的使用 (一)、Spring Redis基本使用
  6. python语言基础项目报告书_25个Python学习项目,值得推荐
  7. linux mmap 内存映射 mmap() vs read()/write()/lseek()
  8. C++(STL):31 ---关联式容器map源码剖析
  9. SAS Viya应用简介
  10. 克隆CentOS设置网络连接
  11. java多线程 run start_java多线程中run和start区别
  12. 安卓搜不到airpods_真心丢不起!那就教教你AirPods丢失后如何查找吧
  13. linux 端口不通,linux的端口不通怎么解决
  14. 1.10 python 基本数据类型-集合
  15. Codewars刷题升级 (Python)5Kyu Pete, the baker 皮特,面包师
  16. 什么是 Linux 下的 platform 设备驱动
  17. 基于波峰波谷法计算信号的周期
  18. 通过126邮箱SMTP服务发送邮件到指定邮箱
  19. html页面如何变成百分之百,css height 100% CSS成功设置DIV高度百分之百
  20. 普吉岛海滨即景(图片欣赏)

热门文章

  1. 面试题46. 把数字翻译成字符串
  2. ssm基于儿童教育网站答辩PPT模板
  3. python批处理代码_Python文件夹批处理操作代码实例
  4. artcam 9.0英文版本下载_Jenkins版本升级(修复漏洞)
  5. flume kafka storm mysql_flume+kafka+storm打通过程
  6. mysql 设计超市订单图,JSP+MySQL校园网络超市系统的设计与实现
  7. mysql+order+in索引吗_mysql – 为什么ORDER BY不使用索引?
  8. 服务器远程登陆最大连接数,解决登录Windows服务器时超出了最大允许连接数
  9. Discuz常见小问题-如何为每个板块设置不同的图标
  10. 网易2016 实习研发工程师 [编程题]寻找第K大 and leetcode 215. Kth Largest Element in an Array...