主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C++

C++ 基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

C++ 字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

C++ 函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

C++ 面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

C++ 高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

C++ 作用域


上一章 下一章

作用域是指程序的一部分,大致上变量可以在三个地方被声明:

  • 在函数或块内声明的变量,称为局部变量;
  • 在函数参数定义中声明的变量,称为形式参数;
  • 在所有函数之外声明的变量,称为全局变量。

C++ 中的变量作用域主要分为两部分:

  • 局部变量
  • 全局变量

我们将在后续章节中学习什么是函数及其参数。现在让我们解释一下局部变量和全局变量是什么。

C++ Variable Scopes

C++ 变量的作用域

局部变量

在函数或块内部声明的变量是局部变量。它们只能被该函数或代码块内的语句使用。局部变量对外部函数是未知的。

示例

以下是一个使用局部变量的示例:

#include <iostream>
using namespace std;

int main () {
   // 局部变量声明
   int a, b;
   int c;

   // 实际初始化
   a = 10;
   b = 20;
   c = a + b;

   cout << c;

   return 0;
}

全局变量

全局变量定义在所有函数之外,通常在程序的顶部。全局变量在其整个生命周期中都将保持其值。

全局变量可以被任何函数访问。也就是说,全局变量在其声明之后在整个程序中都可供使用。

示例

以下是一个使用全局和局部变量的示例:

#include <iostream>
using namespace std;

// 全局变量声明
int g;

int main () {
   // 局部变量声明
   int a, b;

   // 实际初始化
   a = 10;
   b = 20;
   g = a + b;

   cout << g;

   return 0;
}

具有相同名称的局部和全局变量

程序可以为局部和全局变量使用相同的名称,但在函数内部局部变量的值优先。

示例

以下是一个具有相同名称的局部和全局变量的示例:

#include <iostream>
using namespace std;

// 全局变量声明
int g = 20;

int main () {
   // 局部变量声明
   int g = 10;

   cout << g;

   return 0;
}

当上述代码被编译和执行时,它产生以下结果:

10

访问全局变量

当有一个同名的局部变量时,你可以通过在变量名之前使用作用域解析运算符(::)来访问全局变量。

示例

在以下示例中,我们有同名的全局和局部变量,并访问和打印全局变量的值:

#include <iostream>
using namespace std;

// 全局变量声明:
int g = 20;

int main() {
   // 局部变量声明:
   int g = 10;

   cout << "Value of g (Local variable): " << g;
   cout << endl;

   cout << "Value of g (Global variable): " << ::g;

   return 0;
}

当上述代码被编译和执行时,它产生以下结果:

Value of g (Local variable): 10
Value of g (Global variable): 20

初始化局部和全局变量

当定义局部变量时,系统不会初始化它,你必须自己初始化它。全局变量在定义时由系统自动初始化如下:

数据类型 初始化值
int 0
char '\0'
float 0
double 0
指针 NULL

良好的编程实践是适当地初始化变量,否则有时程序可能会产生意外的结果。

上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图