news 2026/4/15 12:39:28

C++ 变量作用域

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++ 变量作用域

局部变量

局部变量在函数或代码块内部声明,仅在该函数或代码块内有效。生命周期从声明开始到代码块结束。例如:

void func() { int x = 10; // 局部变量 cout << x; // 有效 } // cout << x; // 错误:x在此处不可见

全局变量

全局变量在函数外部声明,整个程序均可访问。生命周期从程序开始到结束。需注意避免命名冲突。例如:

int globalVar = 5; // 全局变量 void func() { cout << globalVar; // 有效 } int main() { cout << globalVar; // 有效 }

块作用域变量

{}内声明的变量仅在该块内有效,如循环或条件语句中的变量:

for (int i = 0; i < 5; i++) { // i仅在循环内有效 cout << i; } // cout << i; // 错误:i不可见

静态局部变量

使用static关键字声明的局部变量,生命周期延长至程序结束,但作用域仍限于函数内:

void func() { static int count = 0; // 只初始化一次 count++; cout << count; }

类成员变量

类内声明的变量,作用域由访问修饰符(public/private/protected)决定:

class MyClass { private: int privateVar; // 仅类内可访问 public: int publicVar; // 类外可访问 };

命名空间变量

通过命名空间限定作用域,避免全局变量冲突:

namespace NS { int var = 10; } int main() { cout << NS::var; // 通过命名空间访问 }

作用域解析运算符

使用::访问被局部变量遮蔽的全局变量:

int x = 100; // 全局变量 int main() { int x = 10; // 局部变量 cout << ::x; // 输出全局的100 }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 12:36:47

人类有史以来最伟大的10大壮举与天问一号

文章目录1. 人类有史以来最伟大的10大壮举&#xff08;按影响与突破排序&#xff09;2. 天问一号时间线&#xff08;含关键节点&#xff09;1. 人类有史以来最伟大的10大壮举&#xff08;按影响与突破排序&#xff09; 生命科学&#xff1a;人类基因组计划&#xff08;2003&…

作者头像 李华
网站建设 2026/4/14 19:34:44

S32DS使用一文说清:S32K GPIO外设初始化步骤

S32DS实战指南&#xff1a;从零搞懂S32K GPIO初始化全流程你有没有遇到过这样的情况——代码烧进去&#xff0c;LED就是不亮&#xff1f;按键按烂了也没反应&#xff1f;调试半天才发现&#xff0c;原来是某个时钟没开、引脚复用配错了&#xff0c;或者方向寄存器写反了。这种低…

作者头像 李华
网站建设 2026/4/11 0:38:53

一文说清STM32F4串口通信的STM32CubeMX教程配置步骤

手把手教你用STM32CubeMX配置STM32F4串口通信&#xff1a;从零开始的实战指南你有没有遇到过这种情况&#xff1f;刚焊好一块STM32F4开发板&#xff0c;想通过串口打印“Hello World”验证一下基本功能&#xff0c;结果打开串口助手却一片漆黑——没输出。反复检查代码、波特率…

作者头像 李华
网站建设 2026/4/14 20:45:50

screen指令在ARM开发板调试中的应用详解

用screen调试 ARM 开发板&#xff1a;从串口连接到多任务协同的实战指南你有没有遇到过这样的场景&#xff1f;深夜正在远程调试一块远在实验室的ARM开发板&#xff0c;系统启动卡在某个阶段。你盯着终端一行行刷出的内核日志&#xff0c;正准备进入U-Boot修改启动参数——突然…

作者头像 李华
网站建设 2026/4/9 7:47:24

一文说清STM32MP1在ARM平台上的资源分配策略

STM32MP1 的“双核心法”&#xff1a;如何让 Linux 与实时控制和平共处&#xff1f; 在嵌入式开发的世界里&#xff0c;我们常常面临一个两难选择&#xff1a; 要性能&#xff0c;还是实时性&#xff1f; 运行 Linux&#xff0c;意味着你能轻松接入网络、跑图形界面、用现成…

作者头像 李华
网站建设 2026/4/11 22:00:07

i2c读写eeprom代码多字节写入实战演示

一次搞懂IC读写EEPROM&#xff1a;多字节写入实战与避坑指南你有没有遇到过这种情况——系统要保存几十个配置参数&#xff0c;结果一个一个字节往EEPROM里写&#xff0c;耗时又占CPU&#xff1f;更糟的是&#xff0c;某次跨页写入不小心“翻车”&#xff0c;数据莫名其妙错乱了…

作者头像 李华