当前位置: 首页 > news >正文

C++对C的扩展(一)---作用域运算符和命名空间

3. C++对C的扩展(一) --- 作用域运算符和命名空间

3.1 作用域运算符 “::”

​ 一般来说,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。

#include <iostream>
using namespace std;
int a = 10;//全局变量
void test() {
 int a = 20;//局部变量
 //全局a被隐藏
 cout << "a:" << a << endl;
}
//主程序
int main() {
 test();
}

​ 试着运行以上代码,可以发现输出结果是“a:20”。

​ 这是因为在test函数的输出语句中,使用的变量a是test函数内定义的局部变量,因此输出的结果为局部变量a的值,而非全局变量a的值。

​ 因此为解决局部变量与全局变量的重名问题,就有了作用域运算符——“::”

#include <iostream>
using namespace std;
int a = 10;//全局变量
//局部变量和全局变量同名,都为a
void test() {
 int a = 20;
 //打印局部变量a
 cout << "局部变量a:" << a <&

http://www.mrgr.cn/news/50325.html

相关文章:

  • 大数据开发电脑千元配置清单
  • 亚洲最具影响力人物颜廷利:心理健康对身体健康的重要影响
  • 高级java每日一道面试题-2024年10月15日-JVM篇-说一下JVM的主要组成部分?及其作用?
  • 【JS】数组详解
  • 异地多活(Active-Active Geo-Redundancy)
  • 洛谷 P1803:凌乱的yyy / 线段覆盖 ← 贪心算法
  • WIN11常用设置
  • Leetcode 227 Basic calculator
  • 阻塞队列相关的问题
  • Github 2024-10-15 Python开源项目日报 Top10
  • Python | Leetcode Python题解之第479题最大回文数乘积
  • 【Linux】解读信号的本质&相关函数及指令的介绍
  • DDPM代码详解(可用)
  • C语言复习概要(六)
  • 【2D/3D-Lidar-SLAM】 2D/3D激光SLAM以及GMapping 与 Cartographer
  • 开发规范 - mac系统1小时装机极速装机开发环境
  • 基于springboot+微信小程序校园自助打印管理系统(打印1)
  • Golang | Leetcode Golang题解之第479题最大回文数乘积
  • 大厂服务降级规范
  • 牛只行为及种类识别数据集18g牛只数据,适用于多种图像识别,目标检测,区域入侵检测等算法作为数据集。数据集中包括牛只行走,站立,进食,饮水等不同类型的数据