亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

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; // 全局g
int main() {
    int g = 10; // 局部g遮蔽全局g
    cout << g;  // 输出10
    return 0;
}

输出10,印证局部优先。

初始化差异

局部变量:系统不自动初始化,必须程序员显式赋值。
全局变量:系统自动初始化为默认值:

数据类型默认初始值
int0
char'\0'
float0
double0
pointerNULL

最佳实践:始终显式初始化变量,规避未定义行为导致的诡异Bug。

C语言

  1. 精通C#变量与基础数据类型:完整指南
  2. 理解 C# 变量作用域:类级、方法级与块级详解
  3. 掌握 C++ 变量、字面量与常量:核心概念与实战指南
  4. 掌握 C++ 运算符:六大类型全解析与实战示例
  5. C++ 注释最佳实践:编写可读、可维护代码的注释艺术
  6. C 语言变量、常量与字面量完全指南
  7. C 语言存储类完全解析:auto、extern、static、register
  8. C++ 变量与数据类型全解析:int、double、char、string、bool 详细指南
  9. C++ 指针精通:核心概念、代码示例与实战应用
  10. C 语言变量详解:类型、命名规则、定义声明与内存管理
  11. 理解Python全局、局部与非局部变量
  12. 理解 Java 变量类型:综合指南