C++ 变量作用域学习笔记

在C++中,变量的作用域是指在程序中能够访问该变量的区域。C++中有以下几种变量的作用域:

局部变量作用域

局部变量是在函数内部定义的变量,它们只能在该函数内部被访问。当函数执行完毕时,局部变量会自动销毁。

c++Copy Code
#include <iostream> void exampleFunction() { int localVar = 10; std::cout << "局部变量localVar的值为:" << localVar << std::endl; } int main() { exampleFunction(); // 尝试访问局部变量,会导致编译错误 // std::cout << localVar << std::endl; return 0; }

上面的代码中,局部变量localVar只能在exampleFunction函数内部被访问。

全局变量作用域

全局变量是在程序开头定义的变量,并且可以在整个程序中被访问。如果全局变量没有被初始化,它们会自动初始化为0。

c++Copy Code
#include <iostream> // 定义全局变量 int globalVar = 100; void exampleFunction() { std::cout << "全局变量globalVar的值为:" << globalVar << std::endl; } int main() { exampleFunction(); std::cout << "全局变量globalVar的值为:" << globalVar << std::endl; return 0; }

上面的代码中,全局变量globalVar可以在exampleFunction函数和main函数中被访问。

块作用域

块作用域是指在代码块内部定义的变量,在代码块外部无法访问。当代码块执行完毕后,块作用域变量也会被销毁。

c++Copy Code
#include <iostream> int main() { { int blockVar = 5; std::cout << "块作用域变量blockVar的值为:" << blockVar << std::endl; } // 尝试访问块作用域变量,会导致编译错误 // std::cout << blockVar << std::endl; return 0; }

上面的代码中,块作用域变量blockVar只能在代码块内部被访问。

for循环中的作用域

在for循环中定义的变量,其作用域只在for循环内部有效。

c++Copy Code
#include <iostream> int main() { for (int i = 0; i < 3; i++) { std::cout << "循环变量i的值为:" << i << std::endl; } // 尝试访问循环变量,会导致编译错误 // std::cout << i << std::endl; return 0; }

上面的代码中,循环变量i只能在for循环内部被访问。

总的来说,C++中的变量作用域是非常重要的,我们需要仔细理解每种类型的变量作用域及其使用场景,才能写出高效、规范的代码。