C++局部变量
C++局部变量是指:在一个函数内部定义的变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它,在此函数以外是不能使用这些变量的。
同样,在复合语句中定义的变量只在本复合语句范围内有效,如下就是局部变量:
#include
- 主函数不能使用其他函数中定义的变量。
- 不同函数中可以使用同名的变量,它们代表不同 的对象,互不干扰。
- 可以在一个函数内的复合语句中定义变量,这些变量只在本复合语句中有效。
- 形式参数也是局部变量。
- 在函数声明中出现的参数名,其作用范围只在本行的括号内。
- 主函数main中定义的local_Variable就是局部变量,只在主函数中有效,不会因为在主函数中定义而在整个文件或程序中有效。
C++全局变量
C++全局变量:是指在函数之外定义的变量,如下:
#include
建议读者尽量不要使用全局变量,原因有以下几点
- 全局变量在程序的全部执行过程中都占用存储单 元,而不是仅在需要时才开辟单元。
- 它使函数的通用性降低了,因为在执行函数时要 受到外部变量的影响。
- 使用全局变量过多,会降低程序的清晰性。
读者需要了解一点:如果在同一个源文件中,全局变量与局部变量 同名,则在局部变量的作用范围内,全局变量被屏 蔽,即它不起作用,设全局变量的作用是增加函数间数据联系的渠道。
变量的有效范围称为变量的作用域,归纳起来,变量有4种不同的作用域
- 文件作用域
- 函数作用域
- 块作用域
- 函数原型作用域
文件作用域是全局的,其他三者是局部的,除了变量之外,任何以标识符代表的实体都有作用域,概念与变量的作用域相似。
经典案例:C++输出局部与全局变量。
源码分析:
#include
编译后的结果:
全局变量的值: